【问题标题】:Convert tfjs model for using in Tensorflow in c++转换 tfjs 模型以在 C++ 中的 Tensorflow 中使用
【发布时间】:2019-07-21 06:02:01
【问题描述】:

我是 tensorflow 新手,我有一个问题,我的项目有两个主要部分,首先用 NodeJs 编写,从数据集训练我的模型并将模型保存到本地存储,所以我有两个文件:

  1. model.json
  2. wights.bin

第二部分是用 c++ 编写的,几天后我可以用 bazel 构建 tensorflow 并将其添加到我的 OpenCv 项目中,所以这是我的问题:

我想在 NodeJs 部分训练我的模型,并在我的 C++ 部分使用这些模型。这可能吗 ? 我也看到了 tjs 转换器,但它转换模型以在 NodeJs 中使用,反之亦然。

更新: 经过大量搜索,我发现我应该将我的模型转换为 protobuff 文件,但是 tfjs-Converter 不支持这种类型的转换,还有一点是我想将我的模型与 opencv 库一起使用。

更新 2 最后我可以将我的模型更改为 .pb 文件,首先我使用 tfjs_converter 转换为 keras 模型(.h5 文件),然后使用this python 脚本转换为 .pb 文件,opencv 可以成功加载模型。但是我在使用模型时遇到了这个错误:

libc++abi.dylib:以未捕获的类型异常终止 简历::异常:OpenCV(4.1.0) /tmp/opencv-20190505-12101-14vk1fh/opencv-4.1.0/modules/dnn/src/dnn.cpp:524: 错误:(-2:未指定的错误)无法创建图层 函数中“Shape”类型的“flatten_Flatten1/Shape” 'getLayerInstance'

有什么帮助吗?

谢谢

【问题讨论】:

    标签: javascript c++ opencv tensorflow


    【解决方案1】:

    我终于解决了我自己的问题。

    这是我已经完成的步骤:

    1. 使用 tfjs-converter 将我的 tfjs 模型转换为 keras 模型
    2. 使用this python 脚本将 keras(.h5) 模型更改为冻结模型(.pb)
    3. 使用this教程优化我的.pb模型

    最后一切都很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多