Pytorch学习笔记一----tensor与numpy数组的转换

主要看了莫烦老师的Pytorch教程,结合自己的理解和其他资料整理了第一次笔记。

torch的tensor与Numpy数组之间的转换

将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中的基本运算

对于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)
)

torch中的矩阵运算

讨论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()语句。

你可能感兴趣的:(pytorch学习笔记,python)