|
PyTorch是什么?
基于Python的科学计算包,服务于以下两种场景:
作为NumPy的替代品,可以使用GPU的强大计算能力
提供最大的灵活性和高速的深度学习研究平台
Tensors与Numpy中的 ndarrays类似,但是在PyTorch中 Tensors 可以使用GPU进行计算
根据现有的张量创建张量。 这些方法将重用输入张量的属性,例如, dtype,除非设置新的值进行覆盖
x = x.new_ones(5, 3, dtype=torch.double) # new_* 方法来创建对象
使用size方法与Numpy的shape属性返回的相同,张量也支持shape属性
`torch.Size`` 返回值是 tuple类型, 所以它支持tuple类型的所有操作
# adds x to y
y.add_(x)
任何 以``_`` 结尾的操作都会用结果替换原变量. 例如: ``x.copy_(y)``, ``x.t_()``, 都会改变 ``x``.
torch.view: 可以改变张量的维度和大小
译者注:torch.view 与Numpy的reshape类似
NumPy 转换
将一个Torch Tensor转换为NumPy数组是一件轻松的事,反之亦然。
Torch Tensor与NumPy数组共享底层内存地址,修改一个会导致另一个的变化。
NumPy Array 转化成 Torch Tensor
使用from_numpy自动转化
所有的 Tensor 类型默认都是基于CPU, CharTensor 类型不支持到 NumPy 的转换.
使用.to 方法 可以将Tensor移动到任何设备中
device = torch.device("cuda")
x = x.to(device) # 或者直接使用``.to("cuda")``将张量移动到cuda中
z.to("cpu", torch.double)
|
|