私はKeras(Repoの例からResnet50)に機能モデルを持っています。私はImageDataGenerator
とflow_from_directory
のデータで訓練し、.h5
ファイルに保存しました。私がmodel.predict
と呼ぶとき、私はクラス確率の配列を得る。しかし私はそれらをクラスラベル(私の場合はフォルダ名)と関連づけたい。どうすれば入手できますか?私はmodel.predict_classes
とmodel.predict_proba
を使用することができましたが、機能モデルではこれらの機能は使用できません。Keras機能モデルからクラスラベルを取得
19
A
答えて
7
更新:これは新しいKerasのバージョンではもはや有効ではありません。 Emilia Apostolovaの回答にあるようにargmax()
を使用してください。
機能的APIモデルは、分類のためにクラス確率を返すpredict()
関数を持っています。次に、probas_to_classes()
ユーティリティー機能を使用して最も可能性の高いクラスを選択できます。例:
y_proba = model.predict(x)
y_classes = keras.np_utils.probas_to_classes(y_proba)
これは、シーケンシャルモデルのmodel.predict_classes(x)
に相当します。
これは、機能的APIがpredict_classes()
が意味をなさないより一般的な種類のタスクをサポートしているためです。
12
3
flow_from_directoryを使用する場合、問題は確率出力の解釈方法です。同様に、flow_from_directoryがワンホットベクトルを作成する方法として、確率出力とクラスラベルをどのようにマップするかは、これまでは知られていない。
我々は
generator= train_datagen.flow_from_directory("train", batch_size=batch_size)
label_map = (generator.class_indices)
を使用する場合label_map変数はこの
{'class_14': 5, 'class_10': 1, 'class_11': 2, 'class_12': 3, 'class_13': 4, 'class_2': 6, 'class_3': 7, 'class_1': 0, 'class_6': 10, 'class_7': 11, 'class_4': 8, 'class_5': 9, 'class_8': 12, 'class_9': 13}
のような辞書である私たちは、出力として取得する予測ベクトルのインデックスにクラスラベルをマッピングした辞書を得ることができます
これから、確率スコアとクラス名の間に関係を導くことができます。
基本的に、このコードでこの辞書を作成できます。
from glob import glob
class_names = glob("*") # Reads all the folders in which images are present
class_names = sorted(class_names) # Sorting them
name_id_map = dict(zip(class_names, range(len(class_names))))
上記コード中の変数name_id_mapもflow_from_directoryのclass_indices関数から得られたものと同じ辞書を含んでいます。
希望すると便利です。
関連する問題
- 1. クラスラベルをKerasモデルに添付する
- 2. Keras機能モデルに結合
- 3. TensorFlow予測からクラスラベルを取得する方法
- 4. Keras/Tensorflowカスタムロス機能
- 5. Keras RStudioカスタムロスト機能
- 6. AngularJSサービス機能から値を取得
- 7. ファイヤーベースクラウド機能からUETを取得
- 8. KerasでVGG機能モデルをシーケンシャルモデルに変換
- 9. Keras - 機能的APIモデルを一緒に接続する
- 10. モデルからデータアノテートを取得
- 11. Kerasモデル/レイヤーの出力を取得する
- 12. Keras:各モデル出力の精度を取得する
- 13. Keras + Tensorflow model.compileオプティマイザ機能
- 14. Keras VGGの抽出機能
- 15. kerasの反復モデルではマスキングはどのように機能しますか?
- 16. バックボーン - モデルからコレクションを取得することが可能
- 17. コンパイルされたKerasモデルからテンソルフローコードを返すことは可能ですか?
- 18. Kerasモデルpysparkエラー
- 19. テンソルフローのKerasモデル
- 20. Pyqt - モデルからCSVを取得
- 21. CakePHP - モデルからアプリケーションルートアドレスを取得
- 22. Vue.jsモデルから値を取得する
- 23. モデルから外部キーを取得
- 24. Django:モデルからテーブルエンジンを取得
- 25. LocalStorageからBackbone.jsモデルを取得する
- 26. laravelモデルからレコードを取得する
- 27. Simulinkモデルからモデルトポロジを取得
- 28. ルート/ URLからモデルIDを取得
- 29. Hibernateでモデルからテーブル名を取得
- 30. ExtJSのGridPanelからモデルを取得
現在、np.utils.py(https://github.com/fchollet/keras/blob/master/keras/utils/np_utils.pyを参照)のコードにはprobas_to_classesメソッドがありません。彼らはこれを他の機能に変えましたか?私を助けてください。 – noobalert
私は@noobalertが述べたのと同じ問題があります、それは機能を持っていません。 –
代わりに 'y_classes = y_proba.argmax(axis = -1)'を使用してください – Zach