ImageDataGenerator.flow_from_directory
メソッドを使用して、バラフを生成するKerasでバイナリ分類の問題を解決しようとしています。しかし、私のクラスは非常に不均衡で、あるクラスでは他のクラスに比べて約8倍または9倍多く、モデルはすべての例で同じ出力クラスを予測できなくなってしまいます。 flow_from_directory
を小規模なクラスからオーバーサンプリングするか、各エポックの間に大きなクラスのアンダーサンプルに設定する方法はありますか?現時点では、私は小規模なクラスで複数の画像を作成していますが、もう少し柔軟性を持たせたいと思います。keras flow_from_directoryクラスをオーバーサンプルまたはアンダーサンプルする
答えて
Kerasの現在のバージョンでは、Kerasの組み込みメソッドのみを使用してデータセットのバランスをとることはできません。 flow_from_directory
は、単にすべてのファイルとそのクラスのリストを作成し、必要に応じてシャッフルして、それを反復しています。
しかし、あなたは別のトリックを行うことができ - python
内のバランスになるだろう、独自の発電機を足すことで:ここで
def balanced_flow_from_directory(flow_from_directory, options):
for x, y in flow_from_directory:
yield custom_balance(x, y, options)
custom_balance
バッチ(x, y)
はそれのバランスをとると返している与えられた関数であるべき平衡バッチ(x', y')
。ほとんどのアプリケーションでは、バッチサイズは同じである必要はありませんが、バッチサイズは固定サイズにする必要があります(たとえばstateful RNNなど)。
また、各クラス内のファイルの数を計算し、class_weights
files_per_class = []
for folder in os.listdir(input_foldr):
if not os.path.isfile(folder):
files_per_class.append(len(os.listdir(input_foldr + '/' + folder)))
total_files = sum(files_per_class)
class_weights = {}
for i in xrange(len(files_per_class)):
class_weights[i] = 1 - (float(files_per_class[i])/total_files)
print (class_weights)
...
...
...
model.fit_generator(... ,class_weight=class_weights)
サンプルコードと詳細な説明を追加してください –
答えを編集してこのコードを追加してください –
- 1. Keras ImageDataGeneratorメソッドflow_from_directory
- 2. セマンティックセグメンテーションのKeras、flow_from_directory()エラー
- 3. Keras flow_from_directory機能は:[WinError 3]システムは、パスがPythonでKerasため
- 4. keras ImageDataGenerator flow_from_directory生成されたデータ
- 5. Keras: `flow_from_directory`で` crossentropy`の損失を使用
- 6. Googleクラウドマシンラーニングエンジンで実行しているときにkeras flow_from_directoryを使用しています
- 7. keras flow_from_directory shuffledメソッドを使用してイメージのファイル名を取り出す方法は?
- 8. Rのデータセット内のインスタンスをオーバーサンプルする方法
- 9. Keras:ビッグワンホットエンコーディング:binary_crossentropyまたはcategorical_crossentropy
- 10. Keras ImageDataGeneratorフローメソッドの画像のサイズ変更
- 11. 多出力多クラスKerasモデル
- 12. サブフォルダなしのKeras画像
- 13. 出力クラスをTheano/Kerasの1つのカテゴリにまとめる
- 14. Keras-SegNetはImageDataGeneratorとfitまたはfit_generatorを使用します
- 15. 平均または最大のKeras
- 16. KerasバックエンドJSONはtensorflowなるように定義されていますが、Kerasはまだkerasは以下であるために
- 17. Keras機能モデルからクラスラベルを取得
- 18. Kerasでクラスごとの精度を出力する方法
- 19. Keras - 正しいクラス予測を取得する際の問題
- 20. KerasバイナリクラシファイアModel.Predict()クラスの関連付け?
- 21. MXNetまたはKerasでメトリック学習はありますか?
- 22. はkeras
- 23. KerasはTimeDistributedでCNNをプレトレインします
- 24. Keras:精度はゼロのままです
- 25. Kerasのクラスに値を関連付ける
- 26. Kerasを使用したトレーニングスパースモデル
- 27. AdagradはどのようにKerasに侵入しましたか? Keras Optimizerでself.weightsの意味は何ですか?
- 28. Keras InceptionV3はmodel.predict
- 29. Kerasでmodel.reset_states()を使用するには?
- 30. kerasをWin10にインストールするには?
を正常化することができ、これは私が – George
必要な約何のようだおかげで誰かが詳しく説明し、これに基づいて完全に動作するスクリプトを作成できますか?私はcustom_balanceなどの具体的な例が必要です – mikal94305