主要看了莫烦老师的Pytorch教程,结合自己的理解和其他资料整理了第一次笔记。
将torch的tensor转换为numpy数组:.numpy();;
将numpy数组转化为torch中的tensor:torch.from_numpy();
```python
import torch
import numpy as np
np_data = np.arange(6).reshape((2, 3)) # The form of array
torch_data = torch.from_numpy(np_data) # Tensor print dtype=torch.int32
tensor2numpy = torch_data.numpy() # if torch data, then.numpy();if np_data, then torch.from_numpy(*)
print(
'\nnumpy:', np_data,
'\ntorch:', torch_data,
'\ntensor2numpy:', tensor2numpy
)
对于torch中的一些运算如mean、sin、abs等等和numpy是非常类似的。
import torch
import numpy as np
data_array = [-1.0, -2.0, -3.0, -4.0]
tensor = torch.FloatTensor(data_array)
print(
'\nnumpy:', np.mean(data_array),
'\ntorch:', torch.mean(tensor)
)
讨论numpy的矩阵运算以及torch中的矩阵运算。
numpy:np.matmul( , )
torch:torch.mm( , )
import torch
import numpy as np
data_matrix = np.random.random(size=[2, 2])
ten_mat_one = torch.from_numpy(data_matrix)
ten_mat_two = torch.FloatTensor(data_matrix)
print(
'\nnp:', np.matmul(data_matrix, data_matrix),
'\ntorch1:', torch.mm(ten_mat_one, ten_mat_one),
'\ntorch2:', torch.mm(ten_mat_two, ten_mat_two),
)
输出结果为:
np: [[0.16437834 0.13002956]
[0.43754791 0.37941379]]
torch1: tensor([[0.1644, 0.1300],
[0.4375, 0.3794]], dtype=torch.float64)
torch2: tensor([[0.1644, 0.1300],
[0.4375, 0.3794]])
这里需要注意的是:
1.对于numpy随机生成矩阵时,要采用random下的一个random。
2.将munpy中的矩阵转化为torch中的tensor可以采用两种方法,一个是.torch.from_numpy(),另外一种是torch.Floattensor()。
3.将矩阵转变为一维数组用.ravel()语句。