一、写在前面
本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的预备知识。前面填了机器学习和NLP入门的坑,即日起入门一下深度学习的坑。通过前段时间的学习和实习,深感人工智能的强大和自身存在的不足,因此决定下一番工夫在自己感兴趣的领域。毕竟,留给天灵盖上的头发的时间不多了,嘿嘿。
二、数据操作
在深度学习中,我们通常会频繁地对数据进行操作。作为动手学深度学习的基础,本节将介绍如何对内存中的数据进行操作。
在PyTorch中,torch.Tensor是存储和变换数据的主要工具。如果你之前用过NumPy,你会发现Tensor和NumPy的多维数组非常类似。然而,Tensor提供GPU计算和自动求梯度等更多功能,这些使Tensor更加适合深度学习。
2.2.1 创建Tensor
我们先介绍Tensor的最基本功能,即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:
x = torch.rand(5, 3)
print(x)
输出:
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]