Tensorflow载入模型详解,方法一(基础版):针对测试模型性能 和 使用模型。

         我们知道了如何保存我们的模型接下来,我们就要想办法加载模型,调用模型,这也是我们用来做验证也好、做应用也好必须要做的。当然这里我们只考虑应用和验证,且只涉及模型部分,数据预处理,大家要自己加油啦。下一篇文章将为大家讲解如何加载别人的预训练模型进行微调(fintuning)。

上代码:

import tensorflow as tf


sess = tf.Session()
 
model_dir = 'xxx/xxx'

#图模型路径
meta_path = os.path.join(model_dir,'xxxx.meta')

#导入图结构,加载.meta文件
saver = tf.train.import_meta_graph(meta_path)

#恢复变量值,加载.ckpt文件
saver.restore(sess,tf.train.latest_checkpoint(model_dir))
#注意,这里我用的是tf.train.latest_checkpoint()函数,其作用是,返回最近一次保存的.ckpt数据文件,大家使用时完全可以手动赋值。

#获得默认图,即加载进来的图
graph = tf.get_default_graph()

#填充feed_dict
x = graph.get_tensor_by_name('input_images:0')#这里的input_images要替换成你的占位符
y = graph.get_tensor_by_name('input_labels:0')#这里的input_labels要替换成你的占位符
feed_dict={x:input_image,y:labels}

#通过图结构的名称来加载某结构的输出
conv1 = graph.get_tensor_by_name('conv1:0')#返回值是tensor

sess.run(conv1,feed_dict) #返回值为ndarry

注意:我们在使用get_tensor_by_name时,参数必须是:'层的名字:0',必须加“:0”。否则会报错:

ValueError: The name 'conv1' refers to an Operation, not a Tensor. 

这是因为,conv1代表的是操作的名字,加上:0指代tensorname

 

完整项目有助于大家加深理解,链接:https://github.com/chenlinzhong/gender-recognition
 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值