1. 学ぶ
  2. /
  3. コース
  4. /
  5. PyTorchによる中級ディープラーニング

Connected

演習

PyTorch のモデル

ここでは OOP アプローチでモデルのアーキテクチャを定義します。これは、モデルクラスを用意し、その中に次の 2 つのメソッドを実装することを意味します。

  • .__init__():使用する層を定義します。

  • forward():モデルが入力を受け取った後に何が起こるかを定義します。ここで、事前に定義した層へ入力を流します。

線形層を 3 つ、各層の後に ReLU 活性化を入れたモデルを作りましょう。最後の線形層の後だけはシグモイド活性化にします。これは、今回の水の飲用可否予測のような二値分類タスクに適しています。以下は、皆さんが見慣れているかもしれない nn.Sequential() を使ったモデル定義です。

net = nn.Sequential(
  nn.Linear(9, 16),
  nn.ReLU(),
  nn.Linear(16, 8),
  nn.ReLU(),
  nn.Linear(8, 1),
  nn.Sigmoid(),
)

このモデルをクラスとして書き直してみましょう!

指示

100 XP
  • .__init__() メソッドで、提示されたモデル定義に対応する次元で 3 つの線形層を定義し、それぞれを self.fc1、self.fc2、self.fc3 に割り当ててください。
  • forward() メソッドで、モデル入力 x をすべての層に順に通し、各層の出力に活性化関数を適用してください。最初の層での実装と同様のやり方で進めます。