Tensorflow JS 第一次预测延迟

Tensorflow JS first prediction delay

一旦我成功加载了 TensorflowJS 模型,第一个预测总是有 1-2 秒的延迟。这仅发生在全球范围内的第一个预测中。假设我有 2 个模型,我用 model 1 进行预测,然后用 model 2 进行预测,我将在 model 1 的第一个预测中获得延迟,但在 model 2 的第一个预测中不会。

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

我在预测之前创建所有输入张量,因此延迟必须完全来自预测组件。我假设正在进行某种初始化。如何在第一次预测之前删除 delay/initialize?

第一个预测必须在后端初始化权重。通常建议对模型进行预热,以防止在第一次预测期间出现延迟。热身只是使用虚拟数据的预测,例如 tf.ones of 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);