簡體   English   中英

將 TensorFlow JS model.predict 的值轉化為變量

[英]Get value of TensorFlow JS model.predict into a variable

我正在嘗試在 JS 中實現一個神經網絡,它可以預測某些值,然后將這些值存儲在一個變量中以備后用。

async function processModel(inputs) {
  const model = await tf.loadLayersModel(modelURL);
  inputs = tf.tensor(inputs);

  var predictions = model.predict(inputs);
  predictions = predictions.dataSync();

  console.log(typeof(predictions));

  return predictions;
}

啟動它告訴我predictionsobject類型。 我想獲取返回的 Promise 的值並將這些值存儲在一個變量中,以便我可以將它們與其他變量進行比較。

任何人都可以幫我解決這個問題嗎?

prredictions中的prredictions 數組索引是獲取預測值的方式

根據datasync 方法variable.dataSync()返回DataTypeMap[NumericDataType] 它返回一個TypedArray任何NumericDataType

根據關於 TypedArray 的 MDN 文檔

TypedArray對象描述了底層二進制數據緩沖區的類似數組的視圖。

因此,您對console.log(typeof(predictions))將在控制台中打印object是正確的。

但由於predictions是一個TypedArray ,您可以像使用常規 JavaScript 數組一樣使用它。 您可以打印predictions[0]等。

讓我們看一個TypedArray的例子:

 // create a TypedArray with a size in bytes const typedArrayExample = new Float32Array(2); typedArrayExample[0] = 32.36; console.log(typeof(typedArrayExample)); // object console.log(typedArrayExample); // {"0": 32.36000061035156, "1": 0} console.log(typedArrayExample[0]); // 32.36000061035156

參考:

您可以使用 arraySync() 方法訪問輸出張量中的預測值。 例如,如果輸出張量是一個只有一個輸出值的二維數組,那么下面的代碼將為您提供預測值。

 const resultTensor = model.predict(tf.tensor2d([50], [1, 1]));
 const predictedValue = resultTensor.arraySync()[0][0];
 console.log(predictedValue);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM