『TensorFlow』第七弹_保存&载入会话_霸王回马
首更:
由于TensorFlow的奇怪形式,所以载入保存的是sess,把会话中当前激活的变量保存下来,所以必须保证(其他网络也要求这个)保存网络和载入网络的结构一致,且变量名称必须一致,这是caffe...好吧,caffe也没有这种python风格的设定...
废话少说,导入包:
import numpy as np
import tensorflow as tf
保存会话:
W = tf.Variable([[1,2,3],[4,5,6]],dtype=tf.float32)
b = tf.Variable([[1,2,3]],dtype=tf.float32) init = tf.global_variables_initializer()
saver = tf.train.Saver() # <--------- with tf.Session() as sess:
sess.run(init)
save_path = saver.save(sess,'./my_net/saver_net.ckpt') # <---------
载入会话:
W = tf.Variable(np.arange(6).reshape((2,3)),dtype=tf.float32)
b = tf.Variable(np.arange(3).reshape((1,3)),dtype=tf.float32) saver = tf.train.Saver() with tf.Session() as sess:
saver.restore(sess,'./my_net/saver_net.ckpt') # <---------
print('Weight:\n',sess.run(W))
print('biases:\n',sess.run(b))
输出如下:
Weight:
[[ 1. 2. 3.]
[ 4. 5. 6.]]
biases:
[[ 1. 2. 3.]]
载入会话会加载之前保存的变量,所以不需要tf.global_variables_initializer()激活本次变量了。
再更:
引入节点名称后,只要tf变量节点的名称一致,python变量名不一致也能完美继承,也就是说tf变量节点的名称识别权限大于python变量名
详细的命名规则下节有介绍:『TensorFlow』第八弹_变量与命名空间_固有结界
保存模型:
W = tf.Variable([[1,2,3],[4,5,6]],dtype=tf.float32,name='W') # <------
b = tf.Variable([[1,2,3]],dtype=tf.float32,name='b') # <------ init = tf.global_variables_initializer()
saver = tf.train.Saver() with tf.Session() as sess:
sess.run(init)
save_path = saver.save(sess,'./my_net/saver_net.ckpt')
W--’W‘,b--’b‘
载入模型:
W = tf.Variable(np.arange(6).reshape((2,3)),dtype=tf.float32') # <------
b = tf.Variable(np.arange(3).reshape((1,3)),dtype=tf.float32') # <------ saver = tf.train.Saver() with tf.Session() as sess:
saver.restore(sess,'./my_net/saver_net.ckpt')
print('Weight:\n',sess.run(W))
print('biases:\n',sess.run(b))
W,b
结果报错
载入模型:
W = tf.Variable(np.arange(6).reshape((2,3)),dtype=tf.float32,name='W') # <------
a = tf.Variable(np.arange(3).reshape((1,3)),dtype=tf.float32,name='b') # <------ saver = tf.train.Saver() with tf.Session() as sess:
saver.restore(sess,'./my_net/saver_net.ckpt')
print('Weight:\n',sess.run(W))
print('biases:\n',sess.run(a))
W-’W‘,a--’b'
INFO:tensorflow:Restoring parameters from ./my_net/saver_net.ckpt
Weight:
[[ 1. 2. 3.]
[ 4. 5. 6.]]
biases:
[[ 1. 2. 3.]]
『TensorFlow』第七弹_保存&载入会话_霸王回马的更多相关文章
- 『TensorFlow』第十一弹_队列&多线程&TFRecod文件_我辈当高歌
TF数据读取队列机制详解 一.TFR文件多线程队列读写操作 TFRecod文件写入操作 import tensorflow as tf def _int64_feature(value): # val ...
- 『TensorFlow』第十弹_队列&多线程_道路多坎坷
一.基本队列: 队列有两个基本操作,对应在tf中就是enqueue&dequeue tf.FIFOQueue(2,'int32') import tensorflow as tf '''FIF ...
- 『TensorFlow』第三弹_可视化框架介绍_悄悄问圣僧
添加记录节点 -> 汇总记录节点 -> run汇总节点 -> [书写器生成]书写入文件 [-> 刷新缓冲区] 可视化关键点: 注意, 1.with tf.name_scope( ...
- 『MXNet』第七弹_多GPU并行程序设计
资料原文 一.概述思路 假设一台机器上有个GPU.给定需要训练的模型,每个GPU将分别独立维护一份完整的模型参数. 在模型训练的任意一次迭代中,给定一个小批量,我们将该批量中的样本划分成份并分给每个G ...
- 『PyTorch』第七弹_nn.Module扩展层
有下面代码可以看出torch层函数(nn.Module)用法,使用超参数实例化层函数类(常位于网络class的__init__中),而网络class实际上就是一个高级的递归的nn.Module的cla ...
- 『TensorFlow』模型保存和载入方法汇总
『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 ...
- 『TensorFlow』分布式训练_其二_单机多GPU并行&GPU模式设定
建议比对『MXNet』第七弹_多GPU并行程序设计 一.tensorflow GPU设置 GPU指定占用 gpu_options = tf.GPUOptions(per_process_gpu_mem ...
- 『TensorFlow』专题汇总
TensorFlow:官方文档 TensorFlow:项目地址 本篇列出文章对于全零新手不太合适,可以尝试TensorFlow入门系列博客,搭配其他资料进行学习. Keras使用tf.Session训 ...
- 『PyTorch x TensorFlow』第六弹_从最小二乘法看自动求导
TensoFlow自动求导机制 『TensorFlow』第二弹_线性拟合&神经网络拟合_恰是故人归 下面做了三个简单尝试, 利用包含gradients.assign等tf函数直接构建图进行自动 ...
随机推荐
- UVA 818 Cutting Chains(状压 + 暴搜)题解
题意:有1~n个小环,他们中的有些互相扣在一起,问你至少切开几个能把这写小环串成一条链 思路:还是太菜了,题目给的n<=15,显然可以暴力解决. 用二进制表示每个环切还是不切,然后搜索所有情况. ...
- HIHOcoder 1466 后缀自动机六·重复旋律9
思路 后缀数组+博弈论的好题,首先对两个串都建出SAM,然后题目的要求实际上就是在SAM的trans上转移即可 DAG的博弈是经典问题,然后dfs求出SG函数,两个游戏的组合就是把SG函数异或起来,异 ...
- (zhuan) Deep Deterministic Policy Gradients in TensorFlow
Deep Deterministic Policy Gradients in TensorFlow AUG 21, 2016 This blog from: http://pemami49 ...
- [mybatis错误] - sql出错 org.apache.ibatis.ognl.ParseException: Encountered "!" at line 1, column 15. Was expecting one of:
完整异常:Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'developerTy ...
- MPU6050可以读取ID值,温度值和原始数据值为零问题解决
MPU6050可以读取ID值是0x68,但是读取到的原始数据为零(下面虚拟示波器图中温度值是36.529是单位转换公式中的值被打印出来了,实际值也是零).经论坛搜寻,发现MPU6050出现问题的原因有 ...
- 17秋 SDN课程 第一次作业
SDN第一次作业 你会选择作 网络编程 方向的程序员吗?为什么? 有可能.原因如下: 1.我的研究与网络密切相关: 2.SDN侧重软件实现,自然涉及socket等网络编程知识,属于基本功: 3.市场. ...
- 2、iptables基本应用
iptables:规则管理工具 添加.修改.删除.显示等: 规则和链有计数器: pkts: 由规则或链所匹配到的报文的个数: bytes:由规则或链匹配到的所有报文大小之和: iptables命令: ...
- 2nd,Python基础2——02
1 列表.元组操作 列表可以对数据实现最方便的存储.修改等操作 names = ['Jack', 'Leon','Eric'] 通过下表访问列表中的元素,下标从0开始计数 names = ['Jack ...
- 转一篇 ShaderVariantCollection介绍的比较详细的文章 感谢作者
http://www.seven-fire.cn/archives/174 Unity3D Shader加载时机和预编译 焱燚(七火) | 2016年7月6日 | UnityShader ...
- pom中配置的仓库无效的问题
今天在用spring cloud的时候发现,配置的pom仓库一直无效(官网要求2.0版本直接从指定仓库里下).于是上网搜索,发现(http://18810098265.iteye.com/blog/2 ...