【问题标题】:tf.loadModel is not a functiontf.loadModel 不是函数
【发布时间】:2019-03-11 16:56:36
【问题描述】:

我在 Google Chrome 中使用 Keras MobileNet 和 TensorFlow.js 对图像进行分类。我遵循了一个教程。当我运行代码时,我得到 tf.loadModel 不是函数错误。 我像这样加载模型。

	model = await tf.loadModel('https://gogul09.github.io/models/mobilenet/model.json');
	model.predict();

【问题讨论】:

  • tf.load_model??
  • 对不起,你问什么?

标签: javascript python-3.x tensorflow keras


【解决方案1】:

函数 loadModel 已重命名为 loadLayersModel。

【讨论】:

  • 这一行对我很有帮助
【解决方案2】:

您观察到错误是因为 tf.loadModel API 在最新版本的 tensorflow.js 中发生了变化。我可以通过在项目https://github.com/Gogul09/digit-recognizer-live 中进行以下更改来使预测生效:

index.html 中,将版本更改为 0.10.0 而不是最新版本。

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.10.0"></script>

进行此更改后,我又遇到了一个错误:“传递给 'div' 的参数 'b' 必须是张量,但得到了数字。”

为了解决这个问题,在 app.js 中,函数 preprocessCanvas() 将 tensor.div(255.0) 更改为

tensor.div(tf.scalar(255.0))

根据您使用的是 MLP 还是 CNN 模型,相应地进行更改。更改 js 文件后重新加载页面。

对于这个项目https://github.com/Gogul09/mobile-net-projects,在对tf js版本进行硬编码后,预测不起作用,因为预测按钮的点击事件没有被触发。此外,对于上传图像。在 mobile-net.js 中替换这些行后,预测就起作用了。

改变

$("#predict-button").click(async function () {

$(document).on('click', '#predict-button', async function() { 

改变

$("#select-file-image").change(function() {

$(document).on('change', '#select-file-image', function() {

【讨论】:

  • 我改变了
  • 我收到 DOMException:无法在“WebGL2RenderingContext”上执行“texImage2D”:图像元素包含跨域数据,可能无法加载。错误
  • 我只尝试了演示图像选项。你什么时候收到这个错误?另外,我将代码下载到笔记本电脑并在浏览器中打开 index html。
  • 这适用于 Firefox。在 chrome 上,我看到了你提到的错误。同时,请您检查它是否适用于Firefox?
  • 更新了上传图片的答案。
猜你喜欢
  • 1970-01-01
  • 2017-05-06
  • 2019-12-20
  • 1970-01-01
  • 2019-06-07
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多