1 autograd
1.1 requires_grad
tensor中会有一个属性requires_grad 来记录之前的操作(为之后计算梯度用)。
1.2 调整tensor的requires_grad
1.3 with torch.no_grad
在这个环境里面里面生成的式子将无requires_grad
1.4 detach
内容不变,但是requires_grad将变为False
2 Variable
一般pytorch里面的运算,都是Variable级别的运算
Variable 计算时, 它一步步默默地搭建着一个庞大的系统, 叫做计算图(computational graph)。
这个图是将所有的计算步骤 (节点) 都连接起来。最后进行误差反向传递的时候, 一次性将所有 variable 里面的修改幅度 (梯度) 都计算出来, 而 普通的tensor 就没有这个能力。
2.1 获取variable里面的数据
直接print(variable)只会输出 Variable 形式的数据, 在很多时候是用不了的(比如想要用 plt 画图), 所以我们要转换一下, 将它变成 tensor 形式,或者ndarray形式等。