# tensor和numpy array数据转化及其对比
代码:
import torch
import numpy as np
# numpy数据转换为torch数据
np_data = np.arange(6).reshape((2,3))
torch_data = torch.from_numpy(np_data)
# torch 数据转化为numpy数据
tensor2array = torch_data.numpy()
print(
'\nnumpy',np_data,
'\ntorch',torch_data,
'\ntensor2array',tensor2array,
)
运行结果:
numpy [[0 1 2]
[3 4 5]]
torch tensor([[0, 1, 2],
[3, 4, 5]], dtype=torch.int32)
tensor2array [[0 1 2]
[3 4 5]]
Process finished with exit code 0
# abs
代码:
import torch
import numpy as np
data = [-100,-200,-4,-99,8,9]
tensor = torch.FloatTensor(data)
print(
'\nabs',
'\nnumpy',np.abs(data),
'\ntorch',torch.abs(tensor),
)
运行结果:
abs
numpy [100 200 4 99 8 9]
torch tensor([100., 200., 4., 99., 8., 9.])
Process finished with exit code 0
# sin
代码(类似abs)
import torch
import numpy as np
data = [-100,-200,-4,-99,8,9]
tensor = torch.FloatTensor(data)
print(
'\nsin',
'\nnumpy',np.sin(data),
'\ntorch',torch.sin(tensor),
)
运行结果:
sin
numpy [0.50636564 0.8732973 0.7568025 0.99920683 0.98935825 0.41211849]
torch tensor([0.5064, 0.8733, 0.7568, 0.9992, 0.9894, 0.4121])
Process finished with exit code 0
# mean(类似abs)
代码:
import torch
import numpy as np
data = [-100,-200,-4,-99,8,9]
tensor = torch.FloatTensor(data)
print(
'\nmean',
'\nnumpy',np.mean(data),
'\ntorch',torch.mean(tensor),
)
运行结果:
mean
numpy -64.33333333333333
torch tensor(-64.3333)
Process finished with exit code 0
# 矩阵相乘1
代码:
import torch
import numpy as np
data = [[2,4],[6,8]]
tensor = torch.FloatTensor(data)
print(
'\nmul',#矩阵相乘
'\nnumpy:',np.matmul(data,data),
'\ntorch:',torch.mm(tensor,tensor),
)
运行结果:
mul
numpy: [[28 40]
[60 88]]
torch: tensor([[28., 40.],
[60., 88.]])
Process finished with exit code 0
# 矩阵相乘2(对应相乘dot)
代码:
import torch
import numpy as np
#dot
data = [2,4,6,8]
data = np.array(data)
tensor = torch.FloatTensor(data)
print(
'\ndot',#矩阵相乘
'\nnumpy:',data.dot(data),
'\ntorch:',tensor.dot(tensor),
)
运行结果:
dot
numpy: 120
torch: tensor(120.)
Process finished with exit code 0