我是 tensorflow 的新手,我有一个问题,我的项目有两个主要部分,首先是用 NodeJs 编写的,它从数据集训练我的模型并将模型保存到本地存储,所以我有两个文件:
- 模型.json
- 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'
有什么帮助吗?
谢谢
最佳答案
终于解决了自己的问题。
这是我完成的步骤:
- 使用 tfjs-converter 将我的 tfjs 模型转换为 keras 模型
- 使用this将 keras(.h5) 模型更改为卡住模型(.pb) 的 python 脚本
- 使用this优化我的 .pb 模型的教程
最后一切正常!
关于javascript - 转换 tfjs 模型以在 C++ 中的 Tensorflow 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130727/