pytorch总结学习系列-数据操作

在深度学习中,我们通常会频繁地对数据进⾏行行操作。作为动⼿手学深度学习的基础,本节将介绍如何对内
存中的数据进⾏行行操作。

在PyTorch中, torch.Tensor 是存储和变换数据的主要⼯工具。如果你之前⽤用过NumPy,你会发现
Tensor 和NumPy的多维数组⾮非常类似。然⽽, Tensor 提供GPU计算和⾃自动求梯度等更更多功能,这
些使 Tensor 更更加适合深度学习。

tensor 是张量的意思,多维张量是一个多维数组,标量是0维张量,向量就是一个1维张量,矩阵就是二维张量。

pytorch总结学习系列-数据操作_第1张图片

创建 TENSOR

首先导入PyTorch:

import torch 

然后我们创建一个5x3的未初始化的 Tensor

x = torch.empty(5, 3)
print(x)

输出:

tensor([[ 0.0000e+00, 1.5846e+29, 0.0000e+00],
[ 1.5846e+29, 5.6052e-45, 0.0000e+00],
[ 0.0000e+00, 0.0000e+00, 0.0000e+00],
[ 0.0000e+00, 0.0000e+00, 0.0000e+00],
[ 0.0000e+00, 1.5846e+29, -2.4336e+02]])

创建⼀一个5x3的随机初始化的 Tensor :

输出:

tensor([[0.4963, 0.7682, 0.0885],
[0.1320, 0.3074, 0.6341],
[0.4901, 0.8964, 0.4556],
[0.6323, 0.3489, 0.4017],
[0.0223, 0.1689, 0.2939]])

创建⼀一个5x3的long型全0的 Tensor :

x = torch.zeros(5, 3, dtype=torch.long)
print(x)

输出:

tensor([[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])

直接根据数据创建:

x = torch.tensor([5.5, 3])
print(x)

输出:

tensor([5.5000, 3.0000]) 

还可以通过现有的 Tensor 来创建,此⽅方法会默认重⽤用输⼊入 Tensor 的⼀一些属性,例例如数据类型,除⾮非
⾃自定义数据类型。

x = x.new_ones(5, 3, dtype=torch.float64) # 返回的tensor默认具有相同的
torch.dtype和torch.device
print(x)
x = torch.randn_like(x, dtype=torch.float) # 指定新的数据类型
print(x)

输出:

tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
tensor([[ 0.6035, 0.8110, -0.0451],
[ 0.8797, 1.0482, -0.0445],
[-0.7229, 2.8663, -0.5655],
[ 0.1604, -0.0254, 1.0739],
[ 2.2628, -0.9175, -0.2251]])

通过 shape 或者 size() 来获取 Tensor 的形状:

print(x.size())
print(x.shape)

输出:

torch.Size([5, 3])
torch.Size([5, 3])

注意:返回的torch.Size其实就是⼀一个tuple, ⽀支持所有tuple的操作。

很多函数可以创建 Tensor ,去翻翻官⽅https://pytorch.org/docs/1.2.0/torch.htmlAPI就知道了了,下表给了了⼀一些常⽤用的作参考。

pytorch总结学习系列-数据操作_第2张图片

 这些创建⽅方法都可以在创建的时候指定数据类型dtype和存放device(cpu/gpu)。

你可能感兴趣的:(pytorch总结学习系列-数据操作)