RPN と R-CNN の損失関数を定義する
RPN と R-CNN の両方のコンポーネントを用いる物体検出モデルを学習する予定です。学習させるには、それぞれのコンポーネントの損失関数を定義する必要があります。
RPN コンポーネントは、ある領域に物体が含まれるかどうかを分類し、提案領域のバウンディングボックス座標を予測します。R-CNN コンポーネントは、物体を複数クラスのいずれかに分類すると同時に、最終的なバウンディングボックス座標も予測します。
torch、torch.nn は nn としてインポート済みです。
この演習はコースの一部です
PyTorch で学ぶ画像向け Deep Learning
演習の手順
- RPN の分類損失関数を定義し、
rpn_cls_criterionに代入します。 - RPN の回帰損失関数を定義し、
rpn_reg_criterionに代入します。 - R-CNN の分類損失関数を定義し、
rcnn_cls_criterionに代入します。 - R-CNN の回帰損失関数を定義し、
rcnn_reg_criterionに代入します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Implement the RPN classification loss function
rpn_cls_criterion = ____
# Implement the RPN regression loss function
rpn_reg_criterion = ____
# Implement the R-CNN classification Loss function
rcnn_cls_criterion = ____
# Implement the R-CNN regression loss function
rcnn_reg_criterion = ____