Javascript 浏览器中的TensorFlow.js速度

Javascript 浏览器中的TensorFlow.js速度,javascript,performance,tensorflow,tensorflow.js,Javascript,Performance,Tensorflow,Tensorflow.js,我在Keras中训练了一个简单的双向LSTM网络(20个单元),并通过 tfjs.converters.save_keras_model(model, 'myModel') 该模型大53kb。在我的JavaScript应用程序中,我像这样加载模型 var model; async function loadModel() {; model = await tf.loadModel('https://example.com/myModel.json'); } 然后,我用 async f

我在Keras中训练了一个简单的双向LSTM网络(20个单元),并通过

tfjs.converters.save_keras_model(model, 'myModel')
该模型大53kb。在我的JavaScript应用程序中,我像这样加载模型

var model;
async function loadModel() {;
    model = await tf.loadModel('https://example.com/myModel.json');
}
然后,我用

async function predict(input) {
    var pred = model.predict(input);
    ...
}
加载模型需要5-6秒,这很好。但让我烦恼的是,每次调用predict()也需要5-6秒。每一次。对于我的用例,我需要非常快的预测,1秒或更短

我的问题是:这正常吗?还是我的代码有问题

编辑:这是一个代码笔:


顺便说一句,model.predict正在阻止UI—我如何才能防止这种情况发生?

您的UI正在被阻止,因为您没有要求线程等待预测结果,这意味着它正在同步运行,而不是异步运行。您可以通过使用await关键字来解决这个问题,例如var pred=await model.predict(输入)

您的代码的其余部分看起来很好,因此看起来延迟来自于您的实际模型,因为我看到我的CPU在运行您的模型时几乎没有被占用


值得一读tensorflowjs博客,因为他们为您提供了一些示例,说明如何提高模型的效率,以便在浏览器中更快地进行推断。

您在哪个设备和浏览器上运行模型?这是一本Surface Book 2,Intel i7,在Chrome上具有1.90GHz 2.11GHz、16GB RAM(最新版本)在Python中预测速度有很大的不同吗?在Python中用Mult.ValueType()来测量它,大约需要300毫秒,你可以考虑在这里创建一个问题。