环境: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()。原理不理解,我就是这么个误打误撞的幸运儿。。。