Tensorflow JS第一次预测延迟

vatpfxk5  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(109)

一旦我成功加载了TensorflowJS模型,第一个预测总是有1-2秒的延迟。这只发生在全球第一次预测时。假设我有两个模型,我用model 1预测,然后用model 2预测,我会得到第一个预测model 1的延迟,但不是model 2的第一个预测。

const prediction = model.predict(X[m][i]).dataSync()[0]

我在预测之前创建了所有的输入Tensor,所以延迟必须完全来自预测组件。我假设有某种初始化正在发生。如何在第一次预测之前删除延迟/初始化?

ygya80vv

ygya80vv1#

第一个预测必须在后端初始化权重。通常建议对模型进行预热,以防止在首次预测期间出现延迟。预热只是一个预测与虚拟数据,如tf.randomtf.ones。这种预测的结果并不重要。但是,做出这样的预测会使所有权重Tensor都被初始化,从而使模型更快地为下一次预测做好准备。

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);

相关问题