darknetでYOLOv3をオリジナルデータセットで学習するやり方を解説しているサイト(こことかこことか)は増えてきましたが,学習時に出力されるlogの意味が不明で解説サイトも見つからなかったので調べました.GitHubのissueで解説している人がいたので,それの翻訳版になります(^_-)-☆
(細かい話)私はROSでYOLOを使いたかったのでdarknet_rosを使っていて,そのサブモジュールがpjreddieによる本家darknetなので,それを使っています.今回見つけたissueはAlexeyABによる改良版darknetのissueです.簡単に見た感じは,ベースは同じなのでここで解説しているlogの事(改良版darknetに基づく)も本家darknetで同じだと考えています.(違ったらゴメンなさい((+_+)))
学習時に出力されるlogは以下の画像のような感じ((+_+)) 見ただけだと意味不明。。。何かのIoU(解説)とか出してるけど何のだろう??
この画像内に出力されているlogは2種類ありますが,まず
532633: 5.888629, 5.613394 avg, 0.000010 rate, 3.667564 seconds, 34088512 images
みたいな出力に関してです.このlogは左から
バッチ回数: そのバッチでのloss,平均のloss(注) avg,学習率 rate,このバッチにかかった計算時間 seconds,これまでの学習画像枚数 images
のようになっています.(イテレーション回数ではなくバッチ回数です.subdivisions数のミニバッチがまとまって一つのバッチになってます.なんでこうしてるか正直意味わからないです(*q*;)
(注)平均のlossといいつつも,コード上はave_loss=0.9*ave_loss + lossとなっているので,単なるlossの算術平均ではありません.学習初期のlossの影響が少なく,現在のイテレーションに近い時のlossが大きく考慮されるようなlossになっています.
次に,たくさん出ている
Region 106 Avg IOU: 0.386036, Class: 0.043712, Obj: 0.056230, No Obj: 0.000363, .5R: 0.312500, .75R: 0.000000, count: 16
みたいなlogの見方です.左から順に解説します.
- Region <num> の<num>
- YOLOv3のネットワークの出力レイヤの番号を意味します.YOLOv3のデフォルトのcfgだと,82層目,94層目,106層目を見るようになっています.
- Avg IoU
- 検出されたオブジェクトのバウンディングボックス(クラスは考えない)とGround TruthとのIoUの平均
- “平均”とは,cfgファイルで設定しているbatch数をsubdivisions数で割った枚数の画像を考えた場合です(batch / subdivisions 枚数)
- cfgのbatchは「1つのバッチに含まれるサンプル数」
- cfgのsubdivisionsは「1つのバッチ内のmini batch数」:ミニバッチサイズはbatch / subdivisionsで,この枚数を一度に処理して重み更新をかけているみたいです.
- 参考
- ミニバッチはよく聞くけど,なんで更にバッチに分けるの???ってなってます(;´Д`)
- Class
- 正しく分類されたオブジェクトの確率の平均
- No Objと比較して,Class分類が正しい時のconfidenceがどの程度かを見ている感じかな??
- Obj
- そのanchor boxにオブジェクトがある確率の平均
- 画像全体に対してオブジェクトがどれだけあるかってこと???
- YOLOシリーズの論文ちゃんと読まなきゃわかんなそう。。。
- No Obj:
- すべてのオブジェクトの確率の平均(正しく分類されたもの,正しくない分類のもの両方)
- .5R
- True Positive(解説)の平均(IoU > 0.5)
- IoU > 0.5のバウンディングボックス領域に対するTrue Positive
- .75R
- True Positiveの平均(IoU > 0.75)
- count
- そのレイヤー(Region <num>)における適したanchorの数
- そもそもanchorの理解があいまいなので。。。
- count=0の時は各計算がされずnanになるみたいです.
nanが出力されるときはcount=0, サンプル画像にオブジェクトがない場合です.しばらくnanが少し続いていても問題ないみたいです.長く続くなら学習に問題があるみたいです.
No responses yet