线性回归的简洁实现

https://zh-v2.d2l.ai/chapter_linear-networks/linear-regression-concise.html

练习1的问题应该改成“如果我们用nn.MSELoss(reduction=‘sum’)替换 ,nn.MSELoss()”为了使代码的行为相同,需要怎么更改学习速率?为什么?
答:应该把学习率除以batch_size,因为默认参数是’mean’,换成’sum’需要除以批量数,一般会采用默认,因为这样学习率可以跟batch_size解耦(老师直播讲了~~

2 Likes

我测试了几次简洁实现和从零开始的代码,为什么基本上都是从零开始的损失更小呢?大部分从零开始的损失都是0.000050左右,而简洁实现大部分是0.000100左右

net[0].weight.grad是不是可以用来得到梯度?

Hi @dongming, 一般我们先call .backward() 再call .grad。详见https://zh-v2.d2l.ai/chapter_preliminaries/autograd.html