【发布时间】:2019-07-21 06:02:01
【问题描述】:
我是 tensorflow 新手,我有一个问题,我的项目有两个主要部分,首先用 NodeJs 编写,从数据集训练我的模型并将模型保存到本地存储,所以我有两个文件:
- model.json
- 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