Tensorflow保存模型,恢复模型,使用训练好的模型进行预测和提取中间输出(特征)
来源:互联网 发布:什么日货值得买 知乎 编辑:程序博客网 时间:2024/05/14 21:14
前言:
tensorflow中有operation和tensor,前者表示 操作 ,后者表示 容器 ,每个operation都是有一个tensor来存放值的,比如y=f(x), operation是f(x), tensor存放的就是y,如果要获取y,就必须输入x
tensor的名字一般是 <operation>:<num>
要想图结构和模型(恢复图结构,没错,从空白的代码段中恢复一个graph,就不需要重新定义图了)
假如上面每次定义一次运算后,可以在后面添加tf.add_to_collection():
tensorflow中有operation和tensor,前者表示 操作 ,后者表示 容器 ,每个operation都是有一个tensor来存放值的,比如y=f(x), operation是f(x), tensor存放的就是y,如果要获取y,就必须输入x
tensor的名字一般是 <operation>:<num>
可以通过 print(out.name) 来看看
假如之前的训练定义了如下图(模型),并保存:
.... bottom = layers.fully_connected(inputs=bottom, num_outputs=7, activation_fn=None, scope='logits_classifier') ...... prediction = tf.nn.softmax(logits, name='prob') ...... saver_path = './model/checkpoint/model.ckpt' saver = tf.train.Saver() config = tf.ConfigProto() config.gpu_options.allow_growth=True with tf.Session(config=config) as sess: sess.run(init)...... saved_path = saver.save(sess,saver_path) # 这个保存了三个东西, .meta是图的结构, 还有两个是模型中变量的值......
要想图结构和模型(恢复图结构,没错,从空白的代码段中恢复一个graph,就不需要重新定义图了)
meta_path = './model/checkpoint/model.ckpt.meta' model_path = './model/checkpoint/model.ckpt' saver = tf.train.import_meta_graph(meta_path) # 导入图 config = tf.ConfigProto() config.gpu_options.allow_growth=True with tf.Session(config=config) as sess: saver.restore(sess, model_path) # 导入变量值 graph = tf.get_default_graph() prob_op = graph.get_operation_by_name('prob') # 这个只是获取了operation, 至于有什么用还不知道prediction = graph.get_tensor_by_name('prob:0') # 获取之前prob那个操作的输出,即predictionprint( ress.run(prediciton, feed_dict={...})) # 要想获取这个值,需要输入之前的placeholder (这里我编辑文章的时候是在with里面的,不知道为什么查看的时候就在外面了...) print(sess.run(graph.get_tensor_by_name('logits_classifier/weights:0'))) # 这个就不需要feed了,因为这是之前train operation优化的变量,即模型的权重
假如上面每次定义一次运算后,可以在后面添加tf.add_to_collection():
...... bottom = layers.fully_connected(inputs=bottom, num_outputs=7, activation_fn=None, scope='logits_classifier') ### add collection tf.add_to_collection('logits',bottom) ...... prediction = tf.nn.softmax(logits, name='prob') ### add collection tf.add_to_collection('prob',prediction) ......
恢复模型后,通过tf.get_collection()来获取tensor:
...... x = tf.get_collection('inputs')[0] prob = tf.get_collection('prob')[0] print(x) print(prob) .....可以查看输出,效果是和上面get_tensor_by_name()一样的,注意get_collection(name)的name只是collection的name,tensor的名字还是原来的名字
得到了模型各个地方的tensor之后,要想获取该地方的参数或者输出的值,只需要通过sess.run()就可以了,参数可以直接run,中间的特征或者预测值需要通过feed_dict={}传递输入的值就行啦
具体就不费话了.....
阅读全文
2 0
- Tensorflow保存模型,恢复模型,使用训练好的模型进行预测和提取中间输出(特征)
- Tensorflow保存模型,恢复模型,使用训练好的模型进行预测和提取中间输出(特征)【转】
- TensorFlow 训练好模型参数的保存和恢复代码
- Tensorflow使用笔记(1) 怎么保存和使用训练好的参数和模型
- tensorflow将训练好的模型freeze,即将权重固化到图里面,并使用该模型进行预测
- tensorflow将训练好的模型freeze,即将权重固化到图里面,并使用该模型进行预测
- tensorflow将训练好的模型freeze,即将权重固化到图里面,并使用该模型进行预测
- tensorflow将训练好的模型freeze,即将权重固化到图里面,并使用该模型进行预测
- tensorflow将训练好的模型freeze,即将权重固化到图里面,并使用该模型进行预测(tf.graph_util.convert_variables_to_constants函数)
- caffe 用训练好的模型提取图片特征(使用自带classify.py和classifier.py)
- tensorflow中模型的保存和恢复
- tensorflow训练模型保存saver和恢复restore
- caffe提取已训练好模型的特征
- 代码笔记:caffereid利用训练好的模型提取特征
- Tensorflow:模型保存/模型恢复?
- Tensorflow学习笔记:模型训练数据的保存和恢复的简单实例
- Tensorflow进行保存模型
- TensorFlow模型保存和提取方法
- Linux MQ 队列管理器迁移概述
- C++ new失败的处理
- Python变量访问权限控制的几种方法:单下划线、双下划线、__slots__、@property、__all__
- ios block探究及block野指针异常报错分析解决
- AOP的底层实现-CGLIB动态代理和JDK动态代理
- Tensorflow保存模型,恢复模型,使用训练好的模型进行预测和提取中间输出(特征)
- mplayer安装和移植
- 2017.05.25回顾 lift转roc 不会出现前期发力模型
- 131. Palindrome Partitioning(字符串,dfs回溯)
- sql server 死锁查询及解锁方法
- 输入一个字符串A,求其中最长的连续递增子串的长度。例如 "hidefef" 中最长的连续递增子串是 "def" ,长度为 3
- Unsupported major.minor version 52.0解决办法
- 连接MySql的时候报1130的错误解决办法
- Postman 发送请求