Я недавно начал использовать tenorflow & ссылается на учебное пособие по передаче тензорного потока от https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#3 и переобучил модель InceptionV3 моими собственными данными изображения. В Python я смог обучать модели и классифицировать изображения как в Windows 10, так и в Ubuntu-16.04.
Мне нужно использовать переобученную модель в C ++.
Я использую пример кода 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);
Детали ошибки:
Необработанное исключение в 0x00007FFE263D7788 в ReadModel.exe: Microsoft
Исключение C ++: cv :: Исключение в ячейке памяти 0x0000003B780FB3A0.
произошло
Вывод командной строки:
DecodeJpeg: DecodeJpeg (DecodeJpeg / содержимое )ptable_fraction: [] каналы: [] fancy_upscaling: [] try_recover_truncated: [] dct_method: [] Соотношение: [] Ошибка OpenCV: неизвестная ошибка (неизвестно)
Тип слоя DecodeJpeg в оп. DecodeJpeg) в
резюме :: DNN :: experimental_dnn_v3 :: `анонимной имен ‘:: TFImporter :: populateNet,
файл
C: \ сборка \ master_winpack-билд-win64-vc14 \ OpenCV \ модули \ DNN \ SRC \ tensorflow \ tf_importer.cpp,
линия 1487
Что я понял, что мне нужно удалить часть информации из переобученного графа.
Я погуглил об этих ошибках и возможных решениях, но никто не помог. Похоже, freeze_graph.py доступен на https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py может помочь, но я не могу использовать его, так как не знаю, где взять контрольные точки.
Пожалуйста, помогите мне решить эту проблему. Я буду признателен.
Задача ещё не решена.
Других решений пока нет …