0

我最近开始使用 tensorflow,并参考了https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#3中的 tensorflow 迁移学习教程,并用我自己的图像数据重新训练了 InceptionV3 模型。在 python 中,我能够在 Windows 10 和 Ubuntu-16.04 上训练模型和分类图像。

我需要在 C++ 中使用重新训练的模型。

  • Windows 10 -Python 3.5 -OpenCV3.4 -Visual Studio 2017

我正在使用代码示例https://github.com/opencv/opencv/blob/master/samples/dnn/tf_inception.cpp 根据本教程,我应该使用 inception5,但我需要使用 InceptionV3 . 这就是我加载重新训练的图形、类名文件和配置文件的方式。

String modelFile="//tf_files/retrained_graph.pb";
String classNamesFile = "//tf_files/retrained_labels.txt";
String config = "//tf_files/retrained_graph.pb"; 

代码在

    dnn::Net net = readNetFromTensorflow(modelFile);

错误详情:

ReadModel.exe 中 0x00007FFE263D7788 处的未处理异常:Microsoft C++ 异常:内存位置 0x0000003B780FB3A0 处的 cv::Exception。发生了

命令行输出:

DecodeJpeg:DecodeJpeg(DecodeJpeg/contents)accepted_fraction:[] channels:[] fancy_upscaling:[] try_recover_truncated:[] dct_method:[] ratio:[] OpenCV 错误:未指定的错误(操作 DecodeJpeg 中的未知层类型 DecodeJpeg)在 cv:: dnn::experimental_dnn_v3::`anonymous-namespace'::TFImporter::populateNet,文件 C:\build\master_winpack-build-win64-vc14\opencv\modules\dnn\src\tensorflow\tf_importer.cpp,第 1487 行

我的理解是我需要从重新训练的图表中删除一些信息。我搜索了这些错误和可能的解决方案,但没有任何帮助。看起来像https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py上的 freeze_graph.py可能有帮助,但我不能使用它,因为我不知道从哪里获得检查站。请帮我解决这个问题。我会很感激的。

4

0 回答 0