pythonでの機械学習・物体検出について。
下のurlのサイトを参考にkeras-yoloで独自モデルを作ろうとしています。
リンク内容
train.pyを実行して学習をさせたところ、
Load weights model_data/yolo_weights.h5. Freeze the first 249 layers of total 252 layers. Train on 801 samples, val on 88 samples, with batch size 32. Epoch 1/50 25/25 [==============================] - 973s 39s/step - loss: 1600.0387 - val_loss: 485.2346 Epoch 2/50 25/25 [==============================] - 965s 39s/step - loss: 386.3787 - val_loss: 304.7197 (省略) Epoch 50/50 25/25 [==============================] - 962s 38s/step - loss: 152.0909 - val_loss: 171.5911 Unfreeze all of the layers. Train on 801 samples, val on 88 samples, with batch size 32. Epoch 51/100 25/25 [==============================] - 3418s 137s/step - loss: 126.5299 - val_loss: 113.4697 (省略) Epoch 100/100 25/25 [==============================] - 3424s 137s/step - loss: 92.6176 - val_loss: 92.9692
となって終わってしまいました。
おそらく調べたところlossが1より小さくならないといけないようなのですが、どうすればいいのですかね?
epock数を増やしてもlossが92あたりで頭打ち(過学習というものですかね?)となり中断されてしまいます。
検証結果は8割〜9割ほど検出できるものの、もう少し精度が欲しいといったところです。
train.pyのスクリプトの92行目に# Further training if neededと書いてあるので、必要ならばコード追加しろ?的な事だとは思うですが、75行〜90行のコードをもう一回書けばいいんですかね?
回答1件
あなたの回答
tips
プレビュー