画像分類器のトレーニング

PyTorchによる中級ディープラーニング

Michal Oleszak

Machine Learning Engineer

データ拡張の復習

猫の画像。

PyTorchによる中級ディープラーニング

データ拡張の復習

水平反転および回転された猫の画像。

PyTorchによる中級ディープラーニング

拡張すべきでないケース

黄色のレモンと緑色のライムは色だけが異なり、形は同じ。

PyTorchによる中級ディープラーニング

拡張すべきでないケース

黄色のレモンと緑色のライムは色だけが異なり、形は同じ。

PyTorchによる中級ディープラーニング

拡張すべきでないケース

「W」を垂直反転すると「M」のように見える。

  • 拡張によってラベルが変わる場合がある
  • 問題となるかはタスクによって異なる
  • データとタスクを考慮して拡張を選択すること!
PyTorchによる中級ディープラーニング

雲分類のためのデータ拡張

雲の画像サンプル。

  • ランダム回転:さまざまな角度の雲の形状をモデルに学習させる
  • 水平反転:異なる空の視点を再現する
  • 自動コントラスト調整:異なる照明条件を再現する
train_transforms = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(45),
    transforms.RandomAutocontrast(),
    transforms.ToTensor(),
    transforms.Resize((128, 128))
])
PyTorchによる中級ディープラーニング

交差エントロピー損失

  • 二値分類:二値交差エントロピー(BCE)損失
  • 多クラス分類:交差エントロピー損失
  • criterion = nn.CrossEntropyLoss()
PyTorchによる中級ディープラーニング

画像分類器のトレーニングループ

net = Net(num_classes=7)

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)


for epoch in range(10): for images, labels in dataloader_train: optimizer.zero_grad() outputs = net(images) loss = criterion(outputs, labels) loss.backward() optimizer.step()
PyTorchによる中級ディープラーニング

練習しましょう!

PyTorchによる中級ディープラーニング

Preparing Video For Download...