質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

664閲覧

kerasでの自作モデル作成について

chacha888

総合スコア5

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/03/07 11:56

編集2020/03/07 12:24

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行のコードをもう一回書けばいいんですかね?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/03/07 13:06

「Further training if needed」というのはトレーニングを増やすという意味ですよね? トレーニング回数を増やすとかデータセットを増やすということではないでしょうか? 「検証結果は8割〜9割ほど検出できる」10%の差がありますが、実際のところ精度はいくつなのでしょうか? 90%であればかなり良いかと思いますが。
chacha888

2020/03/07 13:29

やっぱりデータやエポック数を増やすということですかね…。 計算したところ84%でした。 初心者なのでどれ位の精度があればいい方なのかイマイチ分かっていなくて…。9割あればいい方なんですね。ありがとうございます。
guest

回答1

0

ベストアンサー

お疲れ様です。
1より小さくというのは、別のものの場合だと思います。
ちょっと、このケースとスケールが違うかと。

loss: 92.6176 - val_loss: 92.9692

をみると、いわゆる、過学習ではないと思います。前の数字だけが良くなるのが、過学習かと。

さて、
現状ので、検出結果は、ダメなレベルになるのでしょうか?

投稿2020/03/07 12:17

0kcal

総合スコア275

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chacha888

2020/03/07 12:22

すみません、検証結果書き忘れてました。 ある程度(8割〜9割)は検出できるものの、もう少し精度が欲しいかな、といったところです。これ以上精度上げるにはどうするべきなんですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問