入门pytorch书本《深度学习入门之pytorch》,首先学习一维线性回归的实现。书中代码
虽然书中的代码仍在维护,但是pytorch更新了部分函数,本文仅做一些修改,不做一维线性回归的讲解,具体实现可参考代码链接。
-
Variable 与Tensor
variable与tensor合并,旧版本的variable封装仍可以工作,新的tensor就不需要再用variable封装了,requires_grad为tensor的一个属性,默认为False,语句w = Variable(torch.randn(1), requires_grad=True)
,更改为w = torch.randn(1, requires_grad=True)
,对b的初始化操作相同。 -
.data 与.detach()
.data是tensor的一个属性,而.detach()是一个方法,0.4保留了.data,但是更推荐使用.detach()实现从tensor中提取数据转换为numpy,原因是.detach()更安全。两者都与tensor共享内存,且requires_grad=false,但是在调用tensor数据过程中,.detach()对tensor的更改会被检测到并报错,而.data不会报错,使得在后续autograd中出现错误且不易察觉。