C++ != tensorflow::Status::OK())返回状态; } 返回tensorflow::Status::OK(); } int main(int argc,char const*argv[]{ const std::string graph_fn=“./exported/my_model.meta”; const std::string checkpoint_fn=“./exported/my_model”; //准备会议 tensorflow::Session*sess; tensorflow::SessionOptions选项; TF_CHECK_OK(tensorflow::NewSession(选项和sess)); TF_CHECK_OK(负载模型(sess、图_fn、检查点_fn)); //准备投入 tensorflow::TensorShape数据_形({1,2}); tensorflow::TensorData(tensorflow::DT_FLOAT,data_shape); //与python文件中的相同 自动数据=data.flat().data(); 数据_0]=42; 数据_u1]=43; 张量输入{ {“input_plhdr”,data}, }; 向量输出; 你检查一下好吗( sess->Run(feed_dict,{“sequential/Output_1/Softmax:0”},{},&outputs)); std::cout

C++ != tensorflow::Status::OK())返回状态; } 返回tensorflow::Status::OK(); } int main(int argc,char const*argv[]{ const std::string graph_fn=“./exported/my_model.meta”; const std::string checkpoint_fn=“./exported/my_model”; //准备会议 tensorflow::Session*sess; tensorflow::SessionOptions选项; TF_CHECK_OK(tensorflow::NewSession(选项和sess)); TF_CHECK_OK(负载模型(sess、图_fn、检查点_fn)); //准备投入 tensorflow::TensorShape数据_形({1,2}); tensorflow::TensorData(tensorflow::DT_FLOAT,data_shape); //与python文件中的相同 自动数据=data.flat().data(); 数据_0]=42; 数据_u1]=43; 张量输入{ {“input_plhdr”,data}, }; 向量输出; 你检查一下好吗( sess->Run(feed_dict,{“sequential/Output_1/Softmax:0”},{},&outputs)); std::cout,c++,tensorflow,deep-learning,tensorflow-serving,tensorflow2.0,C++,Tensorflow,Deep Learning,Tensorflow Serving,Tensorflow2.0,这对TF1.5很有效 负荷图函数 Status LoadGraph(const tensorflow::string& graph_file_name, std::unique_ptr<tensorflow::Session>* session, tensorflow::SessionOptions options) { tensorflow::GraphDef graph_def; Status load_graph_status =

这对TF1.5很有效

负荷图函数

Status LoadGraph(const tensorflow::string& graph_file_name,
    std::unique_ptr<tensorflow::Session>* session, tensorflow::SessionOptions options) {
    tensorflow::GraphDef graph_def;
    Status load_graph_status =
        ReadBinaryProto(tensorflow::Env::Default(), graph_file_name, &graph_def);
    if (!load_graph_status.ok()) {
        return tensorflow::errors::NotFound("Failed to load compute graph at '",
            graph_file_name, "'");
    }
    //session->reset(tensorflow::NewSession(tensorflow::SessionOptions()));
    session->reset(tensorflow::NewSession(options));
    Status session_create_status = (*session)->Create(graph_def);
    if (!session_create_status.ok()) {
        return session_create_status;
    }
    return Status::OK();
}
Status LoadGraph(const tensorflow::string&graph\u file\u name,
std::unique_ptr*会话,tensorflow::会话选项){
tensorflow::GraphDef graph_def;
状态加载图状态=
ReadBinaryProto(tensorflow::Env::Default()、图形文件名和图形定义);
如果(!load\u graph\u status.ok()){
return tensorflow::errors::NotFound(“未能在“”处加载计算图),
图形文件名称“”;
}
//会话->重置(tensorflow::NewSession(tensorflow::SessionOptions());
会话->重置(tensorflow::NewSession(选项));
状态会话\u创建\u状态=(*会话)->创建(图形定义);
如果(!session\u create\u status.ok()){
返回会话\u创建\u状态;
}
返回状态::OK();
}
调用加载图函数,路径为.pb model和其他会话配置。加载模型后,您可以通过调用Run进行正向传递

Status load_graph_status = LoadGraph(graph_path, &session_fpass, options);

if (!load_graph_status.ok()) {
    LOG(ERROR) << load_graph_status;
    return -1;
}


std::vector<tensorflow::Tensor> outputs;

Status run_status = session_fpass->Run({ {input_layer, image_in} },
    { output_layer1}, { output_layer1}, &outputs);

if (!run_status.ok()) {
    LOG(ERROR) << "Running model failed: " << run_status;
    return -1;
}
Status load\u graph\u Status=LoadGraph(图形路径和会话fpass,选项);
如果(!load\u graph\u status.ok()){
日志(错误)运行({{input_layer,image_in}),
{output_layer1}、{output_layer1}、&outputs);
如果(!run_status.ok()){

LOG(ERROR)这在TF1.5中运行良好

负荷图函数

Status LoadGraph(const tensorflow::string& graph_file_name,
    std::unique_ptr<tensorflow::Session>* session, tensorflow::SessionOptions options) {
    tensorflow::GraphDef graph_def;
    Status load_graph_status =
        ReadBinaryProto(tensorflow::Env::Default(), graph_file_name, &graph_def);
    if (!load_graph_status.ok()) {
        return tensorflow::errors::NotFound("Failed to load compute graph at '",
            graph_file_name, "'");
    }
    //session->reset(tensorflow::NewSession(tensorflow::SessionOptions()));
    session->reset(tensorflow::NewSession(options));
    Status session_create_status = (*session)->Create(graph_def);
    if (!session_create_status.ok()) {
        return session_create_status;
    }
    return Status::OK();
}
Status LoadGraph(const tensorflow::string&graph\u file\u name,
std::unique_ptr*会话,tensorflow::会话选项){
tensorflow::GraphDef graph_def;
状态加载图状态=
ReadBinaryProto(tensorflow::Env::Default()、图形文件名和图形定义);
如果(!load\u graph\u status.ok()){
return tensorflow::errors::NotFound(“未能在“”处加载计算图),
图形文件名称“”;
}
//会话->重置(tensorflow::NewSession(tensorflow::SessionOptions());
会话->重置(tensorflow::NewSession(选项));
状态会话\u创建\u状态=(*会话)->创建(图形定义);
如果(!session\u create\u status.ok()){
返回会话\u创建\u状态;
}
返回状态::OK();
}
调用加载图函数,路径为.pb model和其他会话配置。加载模型后,您可以通过调用Run进行正向传递

Status load_graph_status = LoadGraph(graph_path, &session_fpass, options);

if (!load_graph_status.ok()) {
    LOG(ERROR) << load_graph_status;
    return -1;
}


std::vector<tensorflow::Tensor> outputs;

Status run_status = session_fpass->Run({ {input_layer, image_in} },
    { output_layer1}, { output_layer1}, &outputs);

if (!run_status.ok()) {
    LOG(ERROR) << "Running model failed: " << run_status;
    return -1;
}
Status load\u graph\u Status=LoadGraph(图形路径和会话fpass,选项);
如果(!load\u graph\u status.ok()){
日志(错误)运行({{input_layer,image_in}),
{output_layer1}、{output_layer1}、&outputs);
如果(!run_status.ok()){

日志(错误)因为这个问题出现了好几次:@ashwin你成功地做了一个正向传递了吗?介意在一个新的答案中发布你的代码吗?因为这个问题出现了好几次:@ashwin你成功地做了一个正向传递了吗?介意在一个新的答案中发布你的代码吗?Tensorflow支持,这个答案中使用了什么版本的Tensorflow?我找不到teNSORFLUT::在2.1 C++文档中的会话WurmD,它是TysFooSoal1.x版本。问题涉及使用LoopSaveDead模型,答案基于使用不等价的RealBiabyPoto并用于不同的目的。TysFROUP支持,在这个答案中使用了什么版本的TysFoSoad?我找不到TysFooSo::2.1 C中的会话。++文档WurmD,它是Tensorflow 1.x版。问题涉及使用LoadSavedModel,答案基于使用ReadBinaryProto,这是不等效的,用于不同的目的。问题涉及使用LoadSavedModel,答案基于使用ReadBinaryProto,这是不等效的,用于不同的目的。did在发布这个问题时,没有意识到,模型可以在C++中加载“服务”或“独立”。问题是记住“独立”。方法中,每次向前传递时,我都加载模型。对于这种方法,此解决方案有效。据我所知,模型的SavedModel版本可用于服务。问题涉及使用LoadSavedModel,答案基于使用ReadBinaryProto,这两个版本不等效,且服务于不同的目的。未意识到wHyle发布这个问题,模型可以在C++中加载,用于“服务”或“独立”。问题是记住“独立”的方法,在我每次加载前向模型加载该方法。对于这种方法,这个解决方案起作用。
Status load_graph_status = LoadGraph(graph_path, &session_fpass, options);

if (!load_graph_status.ok()) {
    LOG(ERROR) << load_graph_status;
    return -1;
}


std::vector<tensorflow::Tensor> outputs;

Status run_status = session_fpass->Run({ {input_layer, image_in} },
    { output_layer1}, { output_layer1}, &outputs);

if (!run_status.ok()) {
    LOG(ERROR) << "Running model failed: " << run_status;
    return -1;
}