批量归一化(Batch Normalization)
作为对模型结构的最后一次改进,请在两个线性层之后各添加一个批量归一化层。批量归一化技巧通常能加速训练收敛,并帮助模型缓解梯度消失和梯度爆炸问题。
torch.nn 和 torch.nn.init 已分别以 nn 和 init 的别名为您导入。实现模型结构的改动后,请准备回答一个关于批量归一化工作方式的简短问题!
本练习是课程的一部分
PyTorch 深度学习进阶
交互式实操练习
通过完成这段示例代码来试试这个练习。
class Net(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(9, 16)
# Add two batch normalization layers
____ = ____
self.fc2 = nn.Linear(16, 8)
____ = ____
self.fc3 = nn.Linear(8, 1)
init.kaiming_uniform_(self.fc1.weight)
init.kaiming_uniform_(self.fc2.weight)
init.kaiming_uniform_(self.fc3.weight, nonlinearity="sigmoid")