web-dev-qa-db-ja.com

Tensorflow JS tfjs | tf.loadLayersModelを使用してモデルをロードできません

WAMPスタックを使用してHTMLに埋め込まれた次のコードを実行しているとき

const model = tf.loadLayersModel('js/model.json');

Chromeで次のエラーが発生します

> Uncaught (in promise) TypeError: Failed to fetch

> platform_browser.ts:28 GET http://localhost/poemgenerator/js/group1-shard3of22.bin net::ERR_EMPTY_RESPONSE

> Uncaught (in promise) TypeError: Failed to fetch

上記の場所にすべてのgroup1-shard__of22.binが存在します

コードを実行するたびに、ERR_EMPTY_RESPONSEがさまざまなファイルに表示されます。

を使用してロードされたtfjs

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/[email protected]/dist/tf.min.js"></script>


PS:

コードの実行中、IDMはすべてのgroup1-shard__of22.binファイルのダウンロードを開始します

Iロード中のモデルはpythonで作成され、tfjsコンバーターを使用して変換されたtf.kerasモデルです。


更新:

上記のコードを置き換えて使用しました

async function predict(){
  const model = await tf.loadLayersModel('js/model.json');
  model.summary()
}

IDMも削除しましたが、別のエラーが表示されました:

> errors.ts:48 Uncaught (in promise) Error: Provided weight data has no target variable: lstm_3/lstm_cell_3/kernel

> (index):68 Uncaught TypeError: model.summary is not a function

3
Avi

Tensorflowは非同期で最適に機能するため、モデルの読み込み時にawaitを使用して非同期関数を使用する必要があります。

async function predict(){
  const model = await tf.loadLayersModel('js/model.json');
  // do prediction
}
1
Martijn