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

Rst*_*nbl 5 javascript python keras tensorflowjs-converter

我是新来的机器学习和我下面这个博客如何编写与mobilenet的典范。

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

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

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

浏览器上的错误截图

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

tensorflowjs_converter --input_format keras model.h5 ConvertedModel/

在浏览器中加载模型的代码,我关注了这个博客

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

要查看模型的代码,请参阅博客链接。但下面是模型编译方式的截图。 模型编译

依赖项:

  • 张量流 1.13.1
  • 蟒蛇 3.6.0
  • 张量流 1.0.1

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

BMc*_*yen 7

您似乎遇到了此错误,其中一些权重被添加了额外的后缀。

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

block1_conv1_2/kernel 
Run Code Online (Sandbox Code Playgroud)

应该是:

block1_conv1/kernel
Run Code Online (Sandbox Code Playgroud)

“剪辑错误”错误现已修复,因此我不太确定您收到此错误的原因,但您可以再次通过手动编辑 model.json 并更改以下每个实例来解决此问题:

{"type":"ndarray", "value":6}
Run Code Online (Sandbox Code Playgroud)

6
Run Code Online (Sandbox Code Playgroud)