【发布时间】:2020-06-09 17:40:21
【问题描述】:
我需要从Keras model 获取.pb 和.pbtxt 文件,以便在C++ 中将经过训练的Keras 模型与OpenCV 的DNN 模块一起使用。
我可以通过model.save('model',save_format='tf') 获得.pb 文件,但我还没有找到获得.pbtxt 文件的方法。
【问题讨论】:
标签: c++ opencv tensorflow keras
我需要从Keras model 获取.pb 和.pbtxt 文件,以便在C++ 中将经过训练的Keras 模型与OpenCV 的DNN 模块一起使用。
我可以通过model.save('model',save_format='tf') 获得.pb 文件,但我还没有找到获得.pbtxt 文件的方法。
【问题讨论】:
标签: c++ opencv tensorflow keras
我正在使用相同的设置并遇到相同的问题,所以这是我发现的:
在 OpenCV 中,如果您使用 dnn::readNetFromTensorflow(),那么您实际上并不需要“.pbtxt”文件,仅“.pb”就足够了
您使用 keras model.save() 方法生成的是一个 tensorflow SavedModel,它生成多个文件(以及 .pb),但 .pb 不能单独工作,OpenCV 不接受SavedModel 格式。所以你需要生成一个冻结图。更多信息here,以及为your model 生成冻结图的解决方案。
【讨论】: