【发布时间】:2021-04-17 04:53:51
【问题描述】:
系统 浏览器:Edge/Chrome; tfjs 版本:2.7.0;
说明 在特定页面中使用 tensorflow.js 加载经过训练的 MobileNet V2 模型一次需要 10 多秒。 不仅是第一次,而且每次打开页面都需要 10 多秒。 加载阶段完成后,预测阶段很快。
但是我想知道如何加快加载阶段,因为这样看起来性能不是很好。
加载代码如下:
async function loadModel(model_path) {
model = await tf.loadLayersModel(
model_path
);
}
模型大小只有 9MB。
【问题讨论】:
-
你能检查一下你用这个
console.log(tf.getBackend());使用什么后端吗? -
@yudhiesh 感谢您的回答。好像是
webgl。 -
所以
WebGL后端是最快的,特别是对于这个模型,但这绝对是奇怪的,因为我以前做过同样的事情,而且从来没有这么慢。转换模型的时候你量化了吗? -
@yudhiesh 你的意思是量化训练数据除以 0.255 吗?我使用公共 python 库
tfjs转换.h5模型文件。它生成多个文件,包括一个.json文件和三个.bin文件。然后,当我尝试在 javascript 中使用.json文件加载模型时。至少需要 10 秒。 -
没有量化基本上会缩小模型大小以提高性能,同时会略微降低准确性。您可以参考FAQ number 4 尝试再次应用量化转换模型。然后试试那个模型,它会更快。
标签: tensorflow deep-learning tensorflow.js