始める無料で始める

バッチ正規化

モデルアーキテクチャの最終的な改善として、2つの全結合(linear)層それぞれの後にバッチ正規化層を追加してみましょう。バッチ正規化のテクニックは、学習の収束を速め、vanishing/exploding gradients の問題からモデルを保護します。

torch.nntorch.nn.init はそれぞれ nninit としてすでにインポートされています。モデルアーキテクチャを変更したら、バッチ正規化の仕組みに関する短い質問に答える準備をしてください!

この演習はコースの一部です

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")
コードを編集して実行