东方耀AI技术分享

标题: 01、PyTorch是什么? [打印本页]

作者: 东方耀    时间: 2020-4-9 16:22
标题: 01、PyTorch是什么?
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)







作者: 东方耀    时间: 2020-4-10 09:46
张量的英文是Tensor,它是PyTorch里面基础的运算单位,与Numpy的ndarray相同都表示的是一个多维的矩阵。 与ndarray的最大区别就是,PyTorch的Tensor可以在 GPU 上运行,而 numpy 的 ndarray 只能在 CPU 上运行,在GPU上运行大大加快了运算速度
作者: 东方耀    时间: 2020-4-10 09:46
张量的英文是Tensor,它是PyTorch里面基础的运算单位,与Numpy的ndarray相同都表示的是一个多维的矩阵。
与ndarray的最大区别就是,PyTorch的Tensor可以在 GPU 上运行,而 numpy 的 ndarray 只能在 CPU 上运行,在GPU上运行大大加快了运算速度
作者: 东方耀    时间: 2020-4-10 09:48
在同构的意义下,第零阶张量 (r = 0) 为标量 (Scalar),
第一阶张量 (r = 1) 为向量 (Vector),
第二阶张量 (r = 2) 则成为矩阵 (Matrix),
第三阶以上的统称为多维张量。

其中要特别注意的就是标量
作者: 东方耀    时间: 2020-4-10 09:50
Tensor的基本数据类型有五种:

32位浮点型:torch.FloatTensor。 (默认)
64位整型:torch.LongTensor。
32位整型:torch.IntTensor。
16位整型:torch.ShortTensor。
64位浮点型:torch.DoubleTensor。
除以上数字类型外,还有 byte和chart型
作者: 东方耀    时间: 2020-4-10 09:53
Tensor和numpy对象共享内存,所以他们之间的转换很快,而且几乎不会消耗什么资源。但这也意味着,如果其中一个变了,另外一个也会随之改变
作者: 东方耀    时间: 2020-4-10 09:58
初始化
Pytorch中有许多默认的初始化方法可以使用
# 使用[0,1]均匀分布随机初始化二维数组
rnd = torch.rand(5, 3)
one = torch.ones(2, 2)
zero=torch.zeros(2,2)
#初始化一个单位矩阵,即对角线为1 其他为0
eye=torch.eye(2,2)
PyTorch中对张量的操作api 和 NumPy 非常相似,如果熟悉 NumPy 中的操作,那么 他们二者 基本是一致的




欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/) Powered by Discuz! X3.4