[英]how to pass several tensor to a model.predict in tensorflow.js
[英]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;
}
啟動它告訴我predictions
是object
類型。 我想獲取返回的 Promise 的值並將這些值存儲在一個變量中,以便我可以將它們與其他變量進行比較。
任何人都可以幫我解決這個問題嗎?
prredictions
中的prredictions
。 數組索引是獲取預測值的方式
根據datasync 方法, variable.dataSync()
返回DataTypeMap[NumericDataType]
。 它返回一個TypedArray
任何NumericDataType
。
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.