問題タブ [tensorflowjs-converter]

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.

0 投票する
1 に答える
276 参照

tensorflow - TF モデルを TensorflowJS (Python でトレーニング済み) にインポートすると失敗します:「入力 0 はレイヤー フラット化と互換性がありません: min_ndim=3 が予想され、ndim=2 が見つかりました。」

JS のエラー:

キャッチされていない (約束された) エラー: 入力 0 はレイヤーの平坦化と互換性がありません: 予想される min_ndim=3、見つかった ndim=2.

keras/python (VGG または ResNets など) で事前トレーニング済みのモデルをインポートしようとしている人々から、同じエラーのスレッドが見つかりました。

彼らにとっては、モデルの最上位レイヤーがまだ含まれていることが主な原因だったので、残念ながら、これらのスレッドは、TensorflowJS で python から自己訓練されたモデルを完全にインポートするという私の問題とは何の関係もありません。私のコード:

Python コード:

次に、それを .h5 に保存し、ここで説明されているように tensorflowjs_converter で変換します: https://www.tensorflow.org/js/tutorials/conversion/import_keras

次に、JS にインポートします。

私がこれまでに試したこと:

  • Python で .h5 モデルを再インポートすると、問題なく動作します。
  • RNN レイヤーのない小さな MNIST モデルを Tensorflow JS に変換するとシームレスに動作するため、TensorflowJS の構成ミスの問題ではなく、ここで GRU レイヤーが問題になっているようです?!
  • モデルを Keras の h5 の代わりに TF SavedModel として保存すると、変換に失敗しますtensorflowjs_converter
  • 代わりにinput_shapeto を修正すると、トレーニング インスタンスの長さが異なるため、トレーニングが不可能になります。input_shape=[ 61, max_id+1])None
  • tfjs でモデルを再実装し、重みをインポートするだけでは機能しません。tfjs にはファイルから個々の重みをロードする機能がないためです。

どんなアイデアにもとても感謝しています。

前もって感謝します!