問題タブ [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.
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_shape
to を修正すると、トレーニング インスタンスの長さが異なるため、トレーニングが不可能になります。input_shape=[ 61, max_id+1])
None
- tfjs でモデルを再実装し、重みをインポートするだけでは機能しません。tfjs にはファイルから個々の重みをロードする機能がないためです。
どんなアイデアにもとても感謝しています。
前もって感謝します!