批次正規化(Batch Normalization)
作為模型架構的最後一項改進,讓我們在兩個線性層之後各加入一個批次正規化層。這個技巧通常能加速訓練收斂,並減輕梯度消失與梯度爆炸的問題。
torch.nn 與 torch.nn.init 已分別以 nn 和 init 匯入供你使用。當你完成模型架構的修改後,準備回答一個關於批次正規化運作方式的短題目吧!
本練習屬於課程
Intermediate Deep Learning with 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")