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

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

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

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

YOLO

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

1338閲覧

[機械学習] metricsで指定した指標が0.0000e+00のまま変化しない

tenki3

総合スコア3

Keras

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

YOLO

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/10/08 06:17

編集2020/10/08 06:25

前提・実現したいこと

リンク内容
上記の記事を参考に、githubの リンク内容 をクローンしてkeras-yolo3による独自学習がうまくいきました。
私は機械学習のAccuracyといったモデルの適合率を知りたかったのですが、自分で定義する必要があるようです。
そこで、Yoloの指標で使われるiouを定義し、metricsで指定してtrain.pyを実行しましたが、以下のように0と表示されたまま変化しません。
どこを修正すれば正しく数値が反映されるでしょうか?
イメージ説明

train.pyのソースコード:リンク内容

該当のソースコード

python

1 #train.pyを改変して実行 2 3 # Train with frozen layers first, to get a stable loss. 4 # Adjust num epochs to your dataset. This step is enough to obtain a not bad model. 5 if True: 6 #iouを定義 7 def true_positive(y_true, y_pred): 8 return K.sum(K.cast(K.equal(y_true * y_pred, 1), K.floatx())) 9 10 def true_negative(y_true, y_pred): 11 return K.sum(K.cast(K.equal(y_true + y_pred, 0), K.floatx())) 12 13 def false_positive(y_true, y_pred): 14 return K.sum(K.cast(K.less(y_true, y_pred), K.floatx())) 15 16 def false_negative(y_true, y_pred): 17 return K.sum(K.cast(K.greater(y_true, y_pred), K.floatx())) 18 19 def iou(y_true, y_pred): 20 y_pred = K.round(y_pred) 21 return true_positive(y_true, y_pred) / (false_negative(y_true, y_pred)+true_positive(y_true, y_pred)+false_positive(y_true, y_pred)) 22 23 24 model.compile(optimizer=Adam(lr=1e-3), loss={ 25 # use custom yolo_loss Lambda layer. 26 'yolo_loss': lambda y_true, y_pred: y_pred} , metrics=[iou]) #metrics=[iou]を追加 27 batch_size = 32 28 if len(sys.argv) > 2: 29 batch_size = int(sys.argv[2])

###試したこと
はじめに metrics=["acc"]を行いましたが、0と表示されるだけでした。自分で定義する必要があるので、上記のように改変しました。

関数を以下のようにもっとシンプルにして行ってみましたが、こちらの結果も0のままでした

python

1def mean_pred(y_true, y_pred): 2 return K.mean(y_pred) 3 4model.compile(optimizer=Adam(lr=1e-3), loss={ 5 'yolo_loss': lambda y_true, y_pred: y_pred} , metrics=[mean_pred])

補足情報(FW/ツールのバージョンなど)

windows10
anaconda

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問