- 如果将小批量的总损失替换为小批量损失的平均值,你需要如何更改学习率?
解:默认的其实就是平均值(mean squared),问题问得不对,要反过来做。学习率除batch_size即可 - 查看深度学习框架?档,它们提供了哪些损失函数和初始化?法??Huber损失代替原损失,即
提供的loss如下图所示,如果需要具体了解可以使用help(torch.nn.xxxLoss)或者百度查询
loss = nn.SmoothL1Loss(beta=0.5)
num_epochs = 3
for epoch in range(num_epochs):
for X, y in data_iter:
l = loss(net(X), y)
trainer.zero_grad()
l.backward()
trainer.step()
print("epoch: {}, loss:{}".format(epoch + 1, l))
'''
epoch: 1, loss:0.00011211777746211737
epoch: 2, loss:0.00013505184324458241
epoch: 3, loss:4.4465217797551304e-05
'''
- 你如何访问线性回归的梯度?
net[0].weight.grad,net[0].bias.grad
'''
(tensor([[-0.0040, 0.0027]]), tensor([0.0015]))
'''
为了可观性,这次除了需要高亮loss的,其他问题代码输出都放入了代码块中。
|