【第4回:モデルの学習/評価】TLT(Transfer Learning Toolkit)のチュートリアル

スポンサーリンク
【第4回_モデルの学習】TLT(Transfer Learning Toolkit)のチュートリアルAIを作ってみる

TLT(Transfer Learning Toolkit)の使い方について、チュートリアル形式で全6回にまとめました。

 

この記事を読んで分かること
  • TLTでモデルを学習させる方法
  • TLTでモデルを評価する方法

 

以下環境で動作確認を行いました。

動作環境

  • Ubuntu18.04
  • GTX1080

 

TLT(Transfer Learning Toolkit)のチュートリアルに沿った内容を実践してみます。

TLTインストール後にサンプルファイルとして入っている

/notebooks/examples/detectnet_v2/detectnet_v2.ipynb

の内容となります。

 

今回編集するファイルは以下となります。

/workspace/
  ├ examples/
  │  ├ detectnet_v2/
  │  │  ├ detectnet_v2.ipynb # チュートリアルのソースコード 
  │  │  ├ specs/  # $SPECS_DIR
  │  │  │  ├ detectnet_v2_tfrecords_kitti_trainval.txt # kitti → tfrecords に変換する設定ファイル
  │  │  │  ├ detectnet_v2_train_resnet18_kitti.txt # モデルの学習に関する設定ファイル
  ├ tlt-experiments/
  │  ├ data/  # $DATA_DOWNLOAD_DIR
  │  │  ├ training/
  │  │  │  ├ image_2/
  │  │  │  │  ├ 000000.png
  │  │  │  │  ├ 000001.png 
  │  │  │  │  ├   :
  │  │  │  ├ label_2/
  │  │  │  │  ├ 000000.txt
  │  │  │  │  ├ 000001.txt 
  │  │  │  │  ├   :
  │  │  ├ testing/
  │  │  │  ├ image_2/
  │  │  │  │  ├ 000000.png
  │  │  │  │  ├ 000001.png
  │  │  │  │  ├   :
  │  ├ detectnet_v2/ # $USER_EXPERIMENT_DIR

モデルの学習

学習にはtlt-trainコマンドを使用します。

今回はDetectNet_v2モデルの学習を行います。

tlt-trainコマンドの引数

必須の引数

  • -e : 設定ファイルのパス
  • -r : 出力先のディレクトリのパス
  • -k : NGCAPIキー

オプションの引数

  • -n : 出力するモデルの名前
  • –gpus : 使用するGPUの数

モデルの学習

実際に設定ファイルや出力ディレクトリ等を指定して、モデルの学習をさせます

!tlt-train detectnet_v2 -e $SPECS_DIR/detectnet_v2_train_resnet18_kitti.txt \
                        -r $USER_EXPERIMENT_DIR/experiment_dir_unpruned \
                        -k $KEY \
                        -n resnet18_detector \
                        --gpus $NUM_GPUS

デフォルトのエポック数(120)だとかなり時間がかかりそうだったのでエポック数5の時の出力結果を載せます。

こんな感じで学習結果が表示されました

Epoch 5/5
=========================

Validation cost: 0.000074
Mean average_precision (in %): 40.3382

class name      average precision (in %)
------------  --------------------------
car                              52.5496
cyclist                          34.4322
pedestrian                       34.0328

 

学習結果の確認

学習して生成されたモデルを確認してみましょう。

先程の学習コマンドで指定した出力先フォルダを確認しています。

!ls -lh $USER_EXPERIMENT_DIR/experiment_dir_unpruned/weightsprint(deta)

モデル(.tlt)が存在していることが確認できました。

 

total 43M
-rw-r--r-- 1 root root 43M Feb 12 08:45 resnet18_detector.tlt

 

モデルの評価

評価にはtlt-evaluateコマンドを使用します。

先ほど作成したDetectNet_v2モデルの評価を行います。

tlt-evaluateコマンドの引数

必須の引数

  • -e : 設定ファイルのパス
  • -m : 評価対象のモデルのパス
  • -k : NGCAPIキー

オプションの引数

  • -f : 評価に使用するフレームワーク(「tlt」または「tensorrt」を選択。デフォルトはTensorRT)
  • –use_training_set : 学習データセット+評価用データセットで評価する場合に使用

モデルの評価

実際に設定ファイルや先程生成したモデル等を指定して、モデルの評価をします

!tlt-evaluate detectnet_v2 -e $SPECS_DIR/detectnet_v2_train_resnet18_kitti.txt\
                           -m $USER_EXPERIMENT_DIR/experiment_dir_unpruned/weights/resnet18_detector.tlt \
                           -k $KEY

実行すると評価の結果が表示されました。

Validation cost: 0.000375
Mean average_precision (in %): 40.3250

class name      average precision (in %)
------------  --------------------------
car                              52.5832
cyclist                          34.3606
pedestrian                       34.0311

 

まとめ

TLTでモデルを学習させる方法モデルの評価方法ついて説明しました。

tlt-trainコマンドでは、設定ファイル、出力先ディレクトリ、NGCAPIキーが必須の引数となっていました。

tlt-evaluateコマンドでは、設定ファイル、モデル、NGCAPIキーが必須の引数となっていました。

モデルの作成後には学習データでのモデルの精度が返ってきて、評価コマンド実行後には評価用データでのモデルの精度が返ってきます。

 

次回の記事はこちら

【第5回:モデルの枝刈り】TLT(Transfer Learning Toolkit)のチュートリアル
TLT(Transfer Learning Toolkit)の使い方について、チュートリアル形式で全6回にまとめました。 第1回:入力データの準備 第2回:事前学習モデルの入手 第3回:学習コンフィグの作成   ...

前回の記事はこちら

【第3回:学習コンフィグの作成】TLT(Transfer Learning Toolkit)のチュートリアル
TLT(Transfer Learning Toolkit)の使い方について、チュートリアル形式で全6回にまとめました。 第1回:入力データの準備 第2回:事前学習モデルの入手 第3回:学習コンフィグの作成  ←★今こ...

コメント

タイトルとURLをコピーしました