Pytroch 涉及到 Variable,Tensor 和 Numpy 间的转换比较多,还会涉及到 cuda 到 cpu的转换.
-
Variable 转 Numpy
import torch from torch.autograd import Variable var = Variable(torch.FloatTensor(2,3)) # var = tensor(1.00000e-03 * # [[ 1.1476, 0.0000, 0.0000], # [ 0.0000, 0.0000, 0.0000]]) var_numpy = var.data.numpy() # array([[1.1476139e-03, 4.5816855e-41, 3.7984453e-37], # [0.0000000e+00, 4.4841551e-44, 0.0000000e+00]], dtype=float32)
1.2 Numpy 转 Variable
import torch
from torch.autograd import Variable
import numpy as np
var_numpy = np.random.randn(2, 3)
# array([[-0.27443182, 1.18369008, -0.24645608],
# [-0.99800364, 0.58202014, -0.84904032]])
var = Variable(torch.from_numpy(var_numpy))
# tensor([[-0.2744, 1.1837, -0.2465],
# [-0.9980, 0.5820, -0.8490]], dtype=torch.float64)
1.3 Tensor 转 Numpy
import torch