本文指的是PyTorch官方网站上的教程,该教程分为五个基本模块来介绍PyTorch。为了避免文章太长,在五个博客文章中介绍了这五个模块。第1部分:PyTorch的简单知识第2部分:PyTorch的自动梯度计算第3部分:使用PyTorch构建神经网络第4部分:训练神经网络分类器第5部分:数据并行化本文与第1部分有关。第1部分:PyTorch的简单知识PyTorch是基于Python的科学计算框架,用于深度学习相关研究。 ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????? ????????????????????????????????????????????????有关Python语言的介绍,您可以参考介绍Python& Numpy的前两个博客。它们是Python& Numpy教程(顶部)和Python& Numpy教程(底部)。在这里,我们直接介绍PyTorch中的基本操作。 1 Tensors Tensors与numpy中的ndarray相似,但Tensors支持GPU操作。首先,让我们做一些简单的例子。导入基本包:构建5 * 3未初始化矩阵:x = torch.Tensor(5,3)print(x)构建随机初始化矩阵:x = torch.rand(5,3)print(x)获取大小注意:torch.Size实际上是一个元组,因此它支持相同的操作。 2操作(Operations)操作可以用多种语法表示,我们以加法为例进行说明。加法:语法1y = torch.rand(5,3)print(x + y)加法:语法2print(torch.add(x,y))加法:给定输出tensorresult = torch.Tensor(5,3)torch .add (x,y,out =结果)print(结果)加法:就地加法#addsxtoyy.add_(x)print(y)注意,在适当位置改变张量的任何操作都将后跟A后缀“ _”。 ,例如:x.copy_(y),x.t_(),将更改x的值。您可以使用标准的numpy索引。 print(x [:,1])3NumpyBridge将火炬张量转换为numpy数组,反之亦然。 Torch的Tensor和numpy的数组共享基础内存地址,因此更改一个将更改另一个。将torchTensor转换为numpyarraya = torch.ones(5)print(a)b = a.numpy()print(b)观察numpyarray的值如何变化。 a.add_(1)print(a)print(b)将numpyarray转换为torchTensor,以查看更改numpyarray的值也如何更改torchTensor。 importnumpyasnpa = np.ones(5)b = torch.from_numpy(a)np.add(a,1,out = a)print(a)print(b)CPU上的所有张量(CharTensor除外)都支持双向到Numpy转换。可以使用.cuda函数将4CUDATensors移至GPU。 #letusrunthiscellonlyifCUDAisavailableiftorch.cuda.is_available():x = x.cuda()y = y.cuda()x + y