система: ubuntu16.04
тензор потока: 1.7.0
Я успешно собрал свой libtensorflow_cc.so.Когда я загружаю свой pb-файл (я использовал tf.contrib.resampler здесь) в графике, ошибка отображается как ошибка создания графика: Не найдено: Тип операции не зарегистрирован «Resampler» в двоичном файле, работающем на xxx.Убедитесь, что операционная система и ядро зарегистрированы в двоичном файле, работающем в этом процессе.
Я посмотрел похожие вопросы, подобные этому Выполнение замороженного графа тензорного потока, использующего tennsorflow.contrib.resampler с использованием c_api.h Я нахожу _resampler_ops.so и пытаюсь загрузить его, используя TF_LoadLibrary, но это не удается и ошибка остается.Тензор потока для python и c ++ равен 1.7.0
Session *session;
Status status = NewSession(SessionOptions(), &session);
if (!status.ok())
{
cout << "create session wrong: "<< status.ToString() << endl;
return -1;
}
GraphDef graph_def;
//read model:
if (!ReadBinaryProto(Env::Default(), graph_name, &graph_def).ok())
{
cout << "Read model(pb) failed!" << endl;
return -1;
}
status = session->Create(graph_def);
TF_Status* status_1 = TF_NewStatus();
TF_LoadLibrary("/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/resampler/python/ops/_resampler_ops.so", status_1);
if (TF_GetCode(status_1) != TF_OK) {
cout << "load lib wrong" << endl;
}
TF_DeleteStatus(status_1);
if (!status.ok())
{
cout << "create graph wrong: " << status.ToString() << endl;
return -1;
}
cout<<"load graph done!"<<endl;