Sequential ブロックを作成する
畳み込みレイヤーのブロックを作成して、バイナリ分類用の CNN モデルのテンプレートを作り直すことにしました。これにより、複数のレイヤーを順番に積み重ねられます。改良したこのモデルを使えば、さまざまな CNN アーキテクチャを簡単に設計できるようになります。
torch と、torch.nn を nn としてインポート済みです。
この演習はコースの一部です
PyTorch で学ぶ画像向け Deep Learning
演習の手順
__init__()メソッド内で、畳み込みレイヤーのブロックを定義し、self.conv_blockに代入します。forward()の処理で、定義した畳み込みブロックに入力を通します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
class BinaryImageClassification(nn.Module):
def __init__(self):
super(BinaryImageClassification, self).__init__()
# Create a convolutional block
self.conv_block = ____(
nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1),
nn.ReLU(),
nn.Conv2d(16, 32, kernel_size=3, stride=1, padding=1),
nn.ReLU(),
)
def forward(self, x):
# Pass inputs through the convolutional block
x = ____
return x