Har*_*art 1 javascript tensorflow tensorflow.js
一旦我成功加载 TensorflowJS 模型,第一个预测总是有 1-2 秒的延迟。这仅发生在全球第一次预测时。假设我有 2 个模型,我用 进行预测,model 1
然后用 进行预测model 2
,我将得到第一个预测的延迟,model 1
但不是model 2
第一个预测。
const prediction = model.predict(X[m][i]).dataSync()[0]
Run Code Online (Sandbox Code Playgroud)
我在预测之前创建所有输入张量,因此延迟必须完全来自预测组件。我假设正在发生某种初始化。如何在第一次预测之前消除延迟/初始化?
第一个预测必须初始化后端的权重。通常建议对模型进行预热,以防止首次预测期间出现延迟。预热只是使用虚拟数据(例如 )的tf.ones
预测tf.random
。这种预测的输出并不重要。但是进行这样的预测会使所有权重张量都被初始化,从而使模型更快地为下一个预测做好准备。
const model = await tf.loadLayersModel(modelUrl);
// Warmup the model before using real data.
const warmupResult = model.predict(tf.zeros(inputShape));
warmupResult.dataSync(); // we don't care about the result
warmupResult.dispose();
// Now we can use the model for real predictions
// The second predict() will be much faster
const result = model.predict(userData);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
748 次 |
最近记录: |