問題タブ [convolutional-neural-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Keras: ValueError: 両方の形状の次元 0 は等しくなければなりません (VGGNets)
私はチュートリアルVGGNet16
に従っており、次を使用して事前トレーニング済みのモデルを充電しましたKeras
以前model.save('path/model_1.h5')
は、モデルをトレーニングした後にモデルを保存していましたmodel.fit_generator(...)
それから私は時間切れになりましたColaboratory
。model = load_model('path/model_1.h5')
そのため、モデルを再度ロードする代わりに、モデルを再度ロードするために使用したかったのですvgg16_model = keras.applications.vgg16.VGG16()...
そして今、私はこのエラーが発生しています:
私は何が欠けていますか?あなたより!
tensorflow - マルチラベル分類プロジェクト: 悪いパフォーマンスを改善する方法
文脈化
特定の画像で 3 つのカテゴリを識別するモデルを構築しています。
次の 3 つのカテゴリがあります。
性別:男性/女性
タイプのコート:ブレザー、ブレザー&ジャケット、ブラウス、カーディガン、コート、コート&ジャケット、キュロット、ドレス、ジーンズ、ジャンパー、ジャンプスーツ&ダンガリー、ニットウェア&スウェットシャツ、レギンス&シガレットパンツ、マタニティ、ポロ、ポロロン、シャツ、ショーツ、スカート、スーツ、水着、水着&ビーチウェア、T -シャツ、Tシャツ、トップス、ズボン、チュニック。
- 服の色:ベージュ、黒、青、茶色、緑、灰色、オレンジ、ピンク、赤、白、黄色。
つまり、すべての画像にこれら 3 つのカテゴリが必要です (カテゴリごとに 1 つの値)。
データモデルをトレーニング
するためのデータベースは、1812枚の画像と、各画像の 3 つのカテゴリの値 (およびその URL) を含む Excel ファイルで構成されています。
ここに私のデータベースに関するいくつかの情報があります:
- 男性の数: 759
- 女性の数: 1055
- また、各属性 (各カテゴリの) がデータベースに表示される回数も把握しています (すべてをリストすることはできませんが、解釈に役立つ情報があれば、その情報を送信できます)。
- 最も多い三つ子は(男性、ジーンズ、青):66回
私がやった
こと マルチラベル分類のコンテキストにいることは明らかでした。
1. データをクリーンアップして前処理する( X,Y)
データ
を作成しました。ここで、Xは(1814,204,204,3) の形状で、Yは(1814,39)の形状です'' 39 はダミー変数に対応します: カテゴリ 1 は2 つの属性、カテゴリ 2 には 26 の属性があり、カテゴリ 3 には 11 の属性があるため、合計は 39 '' になります。2. ニューラル ニューラル ネットワーク
の構築 モデルのさまざまなパラメーターは次のとおりです。
- エポック = 100
- レート = 0.001
- 減衰 = レート/エポック
- sgd = SGD(lr=lrate、運動量=0.9、減衰=減衰、ネステロフ=False)
- 損失=binary_crossentropy
- オプティマイザー=sgd
- 指標=精度
私の訓練されたネットワークの構造は次のとおりです。
質問
- 私の metric ='accuracy' は良い選択ではないと思います: それは起こっていることの現実を反映していません. たとえば、トレーニング データに対して評価テストを実行し、0.95 (すべてのビンの 95% が適切に分類されている) を得ましたが、それはモデルがうまく機能していることを意味しません。 39 個のコンポーネントと残りのすべてがゼロです..したがって、多くのゼロを持つ可能性が高く、したがって、36/39 の精度があるよりも悪い場合でも、39 個の値が 0 (何も検出されない) と予測されます。実際の問題を反映していないのはどれですか?(これが結果として得られたものです。特定の X に対して、ゼロに近い多くの値を取得したため、しきい値 (0.5) を使用すると、すべてがゼロに等しくなります。
- モデルのパフォーマンスが悪いのは、画像が少ないことが原因だと思いますか? (ラベルごとの画像) ?
- ニューラル ネットワークの構造が良くないために、私のモデルのパフォーマンスが悪いと思いますか? 最先端の技術では、これらのレイヤーがエッジの検出を担当しているため、最初のレイヤーを修正する事前トレーニング済みのモデルを使用しようとしました。次のレイヤーのみをトレーニングしました。その場合、悪い結果も得られます (「精度」メトリックで計算) ?
- 要約すると、私の問題に対する普遍的な解決策がない可能性があることはわかっていますが、少なくとも、この種の問題の原因とその解決方法を知りたいですか? したがって、特に出力に多くのラベルを持つマルチラベル分類に取り組んだ人々からの助けを歓迎します