Так что я углубился и смог найти решение для следующих проблем, которые позволили мне успешно загрузить сохраненную модель декодера LSTM с API C ++:
Ошибка TF_NOT_FOUND :сообщение об ошибке читается следующим образом: сообщение: тип операции не зарегистрирован 'GatherTree' в двоичном файле, работающем на LAPTOP-5R9P6BHL. Убедитесь, что Op и Kernel зарегистрированы в двоичном файле, запущенном в этом процессе. Обратите внимание, что если вы загружаете сохраненный граф, который использовал операции из tf.contrib, доступ (например) tf.contrib.resampler
должен быть выполнен до импорта графика, так как операции ввода операций лениво регистрируются при первом доступе к модулю. На этомНа этой стадии я только связал tenorflow.dll и tenorflow.lib с моим C ++ проектом. Возможное решение состояло в том, чтобы связать библиотеку, которая содержит определение для Gather Tree op , которое было _beam_search_ops.dll .
_beam_search_ops.dll не найденоошибка : эта ошибка наблюдалась при попытке загрузить библиотеку с помощью TF_LoadLibrary () из c_api.h. После просмотра некоторых сообщений о переполнении стека казалось, что библиотека зависит от библиотек python37.dll и _pywrap_tensorflow_internal.pyd . И после соединения этих двух библиотек я смог успешно загрузить _beam_search_ops.dll.
TF_INVALID_ARGUMENT Ошибка : даже после загрузки библиотеки _beam_search_ops.dll графикОшибка импорта с ошибкой неверного аргумента. Прочитав сообщение об ошибке, я понял, что это произошло из-за того, что _beam_search_ops.dll и _pywrap_tensorflow_internal.pyd были созданы с помощью tenorflow V1.13, tenorflow.dll / lib и * 1032Файл * .pb создается с помощью tenorflow V1.14. Когда я связал _beam_search_ops.dll и _pywrap_tensorflow_internal.pyd из версии tenorflow V1.14, загрузка графика прошла успешно, и я смог прочитать содержимое графика.
Если у кого-то есть лучшее решение для этой проблемы, пожалуйста, опубликуйте его здесь. Спасибо.