小编jav*_*vor的帖子

通过 C API 访问 tensorflow 2.0 SavedModel 的输入和输出张量

我无法从加载了 C_API 的 tensorflow 2.0 SavedModel 运行推理,因为我无法按名称访问输入和输出操作。

我通过 TF_LoadSessionFromSavedModel(...) 成功加载了会话:

#include <tensorflow/c/c_api>

...

TF_Status* status = TF_NewStatus();
TF_Graph*  graph  = TF_NewGraph();
TF_Buffer* r_opts = TF_NewBufferFromString("",0);
TF_Buffer* meta_g = TF_NewBuffer();

TF_SessionOptions* opts = TF_NewSessionOptions();
const char* tags[] = {"serve"};

TF_Session* session = TF_LoadSessionFromSavedModel(opts, r_opts, "saved_model/tf2_model", tags, 1, graph, meta_g, status);

if ( TF_GetCode(status) != TF_OK ) exit(-1); //does not happen
Run Code Online (Sandbox Code Playgroud)

但是,尝试使用以下方法设置输入和输出张量时出现错误:

TF_Operation* inputOp  = TF_GraphOperationByName(graph, "input"); //works with "serving_default_input"
TF_Operation* outputOp = TF_GraphOperationByName(graph, "prediction"); //does not work
Run Code Online (Sandbox Code Playgroud)

我作为参数传递的名称被分配给保存模型的输入和输出 keras 层,但不在加载的graph …

c c-api tensorflow tensorflow-serving tensorflow2.0

2
推荐指数
1
解决办法
1315
查看次数

标签 统计

c ×1

c-api ×1

tensorflow ×1

tensorflow-serving ×1

tensorflow2.0 ×1