forward メソッドを完成させる
__init__ メソッドで層を設定したら、次は forward メソッドでデータがその層をどのように流れるかを定義します。PyTorch Lightning では、この分離によってコードがシンプルで保守しやすくなります。コンストラクタの構成方法はすでに学んだので、今度はフォワードパスに集中しましょう。分類ロジックを明確にし、学習に適した形へ最適化することが目標です。ここでは __init__ 内の層はすでに定義済みなので、フォワードの流れだけに集中できます。
lightning.pytorch と torch.nn はそれぞれ pl、nn としてすでにインポートされています。
この演習はコースの一部です
PyTorch Lightning によるスケーラブルな AI モデルの構築
演習の手順
ClassifierModel内にforwardメソッドを実装しましょう。- 隠れ層の後に ReLU 活性化関数を適用しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
class ClassifierModel(pl.LightningModule):
def __init__(self, input_dim, hidden_dim, output_dim):
super().__init__()
self.hidden = nn.Linear(input_dim, hidden_dim)
self.output = nn.Linear(hidden_dim, output_dim)
# Define forward method
def ____(self, ____):
# Complete the forward pass
x = self.hidden(x)
x = ____(x)
x = self.output(x)
return x