tensorflow1.6 c++ 加载训练好的模型,tensorflow相关报错:无法解析的外部符号

环境:vs2015 + tensorflow1.6 + opencv4.0.1

编译时报出以下错误:

error LNK2001: 无法解析的外部符号 "class tensorflow::GraphDefDefaultTypeInternal tensorflow::_GraphDef_default_instance_" (?_GraphDef_default_instance_@tensorflow@@3VGraphDefDefaultTypeInternal@1@A)
error LNK2001: 无法解析的外部符号 "class tensorflow::SaverDefDefaultTypeInternal tensorflow::_SaverDef_default_instance_" (?_SaverDef_default_instance_@tensorflow@@3VSaverDefDefaultTypeInternal@1@A)

解决:

1)将 status = session->Create(graph_def.graph_def());
      改为:status = session->Create(*(graph_def.mutable_graph_def()));
2)将 for (const auto &node : graph_def.graph_def().node()) 
      改为:for (const auto &node : graph_def.mutable_graph_def()->node())

3)将status = session->Run(
            { {graph_def.saver_def().filename_tensor_name(), checkpointTensor}, },
            {}, {graph_def.saver_def().restore_op_name()}, nullptr );
    改为:tatus = session->Run(
    { { graph_def.mutable_saver_def()->filename_tensor_name(), checkpointTensor }, },
    {}, { graph_def.mutable_saver_def()->restore_op_name() }, nullptr);

主要的修改是修改了graph_def函数为mutable_graph_def(),修改saver_def()为mutable_saver_def()。原理不理解,我就是这么个误打误撞的幸运儿。。。

发布了191 篇原创文章 · 获赞 104 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/u013925378/article/details/103199447