第一节 tensor - 第二部分
CUDA Tensors
Torch Tensor转换为Numpy数组
Numpy数组转换为Torch Tensor
CUDA Tensors
注意
CUDA Tensors
Torch Tensor转换为Numpy数组
#将Torch Tensor转换为Numpy数组
a = torch.ones(5)
print(a)
b = a.numpy()
print(b)
a.add_(1)
print(a)
print(b)
运行结果:
Numpy数组转换为Torch Tensor
#将Numpy数组转换为Torch Tensor
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)
运行结果:
CUDA Tensors
可以使用该.to方法将张量移动到任何设备上。
#如果CUDA可用,运行下面这段代码
if torch.cuda.is_available():
device = torch.device(“cuda”) #创建一个CUDA device对象
y = torch.ones_like(x, device=device) # 在GPU上直接创建tensor
x = x.to(device) #或者使用.to方法
z = x + y
print(z)
print(z.to(“cpu”, torch.double)) #.to 也能改变dtype
运行结果:
注意
1.将Torch Tensor转换为Numpy数组后(反之亦然),Torch Tensor和Numpy将共享其底层内存位置,更改一个将改变另一个。
2.除CharTensor外,CPU上的所有Tensors都支持转换为Numpy并返回。