pytorch学习笔记(入门)

几乎所有框架都是基于计算图的,计算图可分为静态和动态计算图。tensorflow使用的是静态计算图,pytorch使用的是动态图,静态图先定义再运行,一次定义多次运行。动态图在运行过程中被定义,在运行时构建,可多次构建多次运行。静态图创建后不能修改,语法繁复导致静态图过于庞大,可能占用过高的显存。动态图框架语法简单,可以使用Python中的if,while等语句。

jupyter下调试

一、创建变量:

Tensor可认为是一个高维数组,可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)或者更高维的数组。

import torch as t

x = t.Tensor(5,3)  # 可通过x.size(), 查看x的形状, x.size()[1],x.size(1) 查看列的个数

y = t.rand(5,3)  # 使用[0,1]均匀分布随机初始化二维数组

二、Tensor的选取操作:

x[:, 1]  #获取第一列所有元素,python中从0开始

x[3,0]  #获取第3行第0列的元素

三、相加:

1.  x + y 

2.  t.add(x, y)

3.  指定输出目标

result = t.Tensor(5, 3)  # 预先分配空间

t.add(x, y, out = result)   # 输入到result

result

关于加法注意:已有x,y,执行 y.add(x)后,y的值不变,执行y.add_(x)后,y的值被修改。所以,函数名后带下划线_的函数会修改Tensor本身。x.add_(y) 和 x.t_()会改变x,但x.add(y)和x.t()会返回一个新的Tensor,而x本身不变。

三、Tensor与numpy之间的互操作

Tensot不支持的操作可以先转为numpy数组处理,再转回Tensor。

pytorch学习笔记(入门)_第1张图片

 b = a.numpy()   # Tensor -> Numpy

 b = t.from_numpy(a)  # Numpy -> Tensor

四、torch.max()

a = torch.randn(3,3)

torch.max(a,0)       #返回a中每一列元素的最大值,且返回最大值对应的行索引

torch.max(a,0)[0]   #返回a中每一列元素的最大值

torch.max(a,0)[1]   #返回a中每一列元素的最大值对应的行索引

同理,torch.max(a,1) 则为返回a中每一行元素的最大值,且返回最大值对应的列索引

你可能感兴趣的:(pytorch学习笔记(入门))