【问题标题】:Uncaught (in promise) Error: Provided weight data has no target variable: block1_conv1_2/kernel未捕获(承诺中)错误:提供的权重数据没有目标变量:block1_conv1_2/kernel
【发布时间】:2019-08-13 04:58:50
【问题描述】:

我是机器学习的新手,我正在关注blog,了解如何使用 mobilenet 编写模型。

我设法转换了 .h5 文件模型并尝试实现它 在我的网络应用上。

不幸的是,当我尝试加载 JSON 模型时出现此错误:

未捕获(承诺中)错误:提供的重量数据没有目标 变量:block1_conv1_2/kernel。

Screenshot of the error on a browser

我在命令行中转换了 .h5 模型,如下所示:

tensorflowjs_converter --input_format keras model.h5 ConvertedModel/

在浏览器中加载模型的代码,我跟着这个blog

let model;
async function loadModel(name) {
  $(".progress-bar").show(); 
  model = undefined;
  model = await tf.loadModel(`ConvertedModel/model.json`);
    $(".progress-bar").hide();
}

查看型号代码请参考blog link。 但下面是如何编译模型的屏幕截图。 Model compilation

依赖关系:

  • 张量流 1.13.1
  • Python 3.6.0
  • tensorflowjs 1.0.1

任何解决此问题的帮助将不胜感激。非常感谢。

【问题讨论】:

  • 我有类似的问题,通过从 tfjs 1.2.11 升级到 1.3.2 解决了。

标签: javascript python keras tensorflowjs-converter


【解决方案1】:

您似乎遇到了this error,其中为您的某些权重添加了额外的后缀。

您可以通过从您的 model.json 中手动删除这些额外的后缀来解决此问题:

block1_conv1_2/kernel 

应该是:

block1_conv1/kernel

“剪辑错误”错误现在是 fixed,所以我不太确定您为什么会收到这个错误,但您可以再次通过手动编辑 model.json 并更改每个实例:

{"type":"ndarray", "value":6}

6

【讨论】:

  • 您好!感谢您的回复。您的建议删除了我收到的错误消息,但现在返回了未捕获(承诺)错误:剪辑中的错误:min(0)必须小于或等于 max([object Object])。在 assert (util.ts:81) 在 clipByValue_ (unary_ops.ts:335) 在 clipByValue (operation.ts:46) 在 t.call (advanced_activations.ts:59) 在 topology.ts:998 在 nameScope (common.ts :52) 在 t.apply (topology.ts:957) 在 executeInternal (executor.ts:199) 在 executeInternal (executor.ts:194) 在 executeInternal (executor.ts:194)
  • @Rstynbl 我也用这个修复更新了我的答案。希望对您有所帮助!
  • 我相信它应该只是:> "max_value": 6.0,
  • 谢谢!是的,它现在有效!抱歉上次查询,愚蠢的错误!感谢您的所有帮助!
  • 很高兴有帮助!
猜你喜欢
  • 2018-02-27
  • 2017-10-11
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2017-06-21
  • 2019-11-24
  • 2017-11-18
  • 1970-01-01
相关资源
最近更新 更多