二元分類模型
身為深度學習實務工作者,你的主要任務之一是為影像分類訓練模型。你經常會碰到二元分類,需要在兩個類別之間做區分。為了讓流程更順暢並提升重用性,你決定建立一個二元影像分類 CNN 模型的範本,未來的專案都能套用。
已匯入套件 torch 以及將 torch.nn 命名為 nn。所有影像大小皆為 64x64 像素。
本練習屬於課程
使用 PyTorch 進行影像深度學習
練習說明
- 建立一個卷積層:輸入通道數為 3、輸出通道數為 16、kernel size 為 3、stride 為 1、padding 為 1。
- 建立一個全連接層:輸入大小為 16x32x32,類別數為 1;僅包含並依提供的順序填入值
(16*32*32, 1)。 - 建立一個
sigmoid啟用函式。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
class BinaryImageClassifier(nn.Module):
def __init__(self):
super(BinaryImageClassifier, self).__init__()
# Create a convolutional layer
self.conv1 = ____(____)
self.relu = nn.ReLU()
self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2)
self.flatten = nn.Flatten()
# Create a fully connected layer
self.fc = ____(____)
# Create an activation function
self.sigmoid = ____