javascript - 转换 tfjs 模型以在 C++ 中的 Tensorflow 中使用

标签 javascript c++ opencv tensorflow

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

  1. 模型.json
  2. wights.bin

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

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

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

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

libc++abi.dylib: terminating with uncaught exception of type cv::Exception: OpenCV(4.1.0) /tmp/opencv-20190505-12101-14vk1fh/opencv-4.1.0/modules/dnn/src/dnn.cpp:524: error: (-2:Unspecified error) Can't create layer "flatten_Flatten1/Shape" of type "Shape" in function 'getLayerInstance'

有什么帮助吗?

谢谢

最佳答案

终于解决了自己的问题。

这是我完成的步骤:

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

最后一切正常!

关于javascript - 转换 tfjs 模型以在 C++ 中的 Tensorflow 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130727/

相关文章:

Javascript比较内存中对象的大小

javascript setTimeout()不添加延迟

python - 使用MSER作为关键点检测器并使用SIFT作为描述符

c++ - 两个程序之间的消息传递

c++ - QT:QFileInfo().exists() 不起作用

c++ - 从 OpenCV 3 切换到 OpenCV 4 会导致网络摄像头以最高 5 fps 的速度录制,而不是通常的 30 fps

python - 如何使用 opencv 和 Python 读取用户的 "ctrl+q"输入?

javascript - 如何获取/设置 highcharts xAxis 步骤?

javascript - 如何更改 Razor 中剑道网格的可分页消息?

c++11 在不同类之间共享固定大小的数组