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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值