首更:

由于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』第七弹_保存&载入会话_霸王回马的更多相关文章

  1. 『TensorFlow』第十一弹_队列&多线程&TFRecod文件_我辈当高歌

    TF数据读取队列机制详解 一.TFR文件多线程队列读写操作 TFRecod文件写入操作 import tensorflow as tf def _int64_feature(value): # val ...

  2. 『TensorFlow』第十弹_队列&多线程_道路多坎坷

    一.基本队列: 队列有两个基本操作,对应在tf中就是enqueue&dequeue tf.FIFOQueue(2,'int32') import tensorflow as tf '''FIF ...

  3. 『TensorFlow』第三弹_可视化框架介绍_悄悄问圣僧

    添加记录节点 -> 汇总记录节点 -> run汇总节点 -> [书写器生成]书写入文件 [-> 刷新缓冲区] 可视化关键点: 注意, 1.with tf.name_scope( ...

  4. 『MXNet』第七弹_多GPU并行程序设计

    资料原文 一.概述思路 假设一台机器上有个GPU.给定需要训练的模型,每个GPU将分别独立维护一份完整的模型参数. 在模型训练的任意一次迭代中,给定一个小批量,我们将该批量中的样本划分成份并分给每个G ...

  5. 『PyTorch』第七弹_nn.Module扩展层

    有下面代码可以看出torch层函数(nn.Module)用法,使用超参数实例化层函数类(常位于网络class的__init__中),而网络class实际上就是一个高级的递归的nn.Module的cla ...

  6. 『TensorFlow』模型保存和载入方法汇总

    『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 ...

  7. 『TensorFlow』分布式训练_其二_单机多GPU并行&GPU模式设定

    建议比对『MXNet』第七弹_多GPU并行程序设计 一.tensorflow GPU设置 GPU指定占用 gpu_options = tf.GPUOptions(per_process_gpu_mem ...

  8. 『TensorFlow』专题汇总

    TensorFlow:官方文档 TensorFlow:项目地址 本篇列出文章对于全零新手不太合适,可以尝试TensorFlow入门系列博客,搭配其他资料进行学习. Keras使用tf.Session训 ...

  9. 『PyTorch x TensorFlow』第六弹_从最小二乘法看自动求导

    TensoFlow自动求导机制 『TensorFlow』第二弹_线性拟合&神经网络拟合_恰是故人归 下面做了三个简单尝试, 利用包含gradients.assign等tf函数直接构建图进行自动 ...

随机推荐

  1. 集合04_Set

    Set集合总览 集合元素无序.不重复,三个实现类都是线程不安全的,最好在创建时通过Collections工具类的synchronizedSortedSet方法来包装Set集合,防止对set集合的意外非 ...

  2. Linux命令3——c

    cal:calender,显示月历 -j:用凯撒历(dates of julius caesar)的形式来显示月历,不分月份.1-365/366 -m:显示月历时,把星期一定为一周的开始.默认星期日为 ...

  3. angular-cli 正确安装步骤

    npm install -g node-gyp npm install --global windows-build-tools npm install -g angular-cli

  4. C++中set的用法

    set的特性是,所有元素都会根据元素的键值自动排序,set的元素不像map那样可以同时拥有实值(value)和键值(key),set元素的键值就是实值,实值就是键值.set不允许两个元素有相同的键值. ...

  5. Highlight.js语法突出显示

    正如我在这个博客开始之前所说的最小可行产品,因此我在几个小时内就开始运行了.这种方法在初始推动之后会减慢你的速度.最新的例子是要提供语法高亮的代码片段. 规格由于使用静态网站生成器,我的狩猎的开始立即 ...

  6. js try catch 的使用,容错处理

    tag: js try catch 的使用,js容错处理 网友回答: try{ //正常执行 }catch(e/*你感觉会出错的 错误类型*/){ // 可能出现的意外 eg:用户自己操作失误 或者 ...

  7. 1、Python模块和包(0602)

    模块.异常.运行环境.mysqldb 模块: 顶层文件:作为整个文件的程序入口,就是负责去调用其他文件中的代码来实现程序流程功能的,称为顶层程序文件, 模块文件1 模块文件2 python模块 1.可 ...

  8. SAP S/4 HANA

    通常说到SAP,指的都是SAP Business Suite/R3(ECC) 这款产品. 那么SAP S/4 HANA与SAP R3究竟有什么不同呢? 简单地说,S/4 HANA是下一代的R/3和SA ...

  9. forEach、map、filter、find、sort、some等易错点整理

    一.常用方法解析   说起数组操作,我们肯定第一反应就是想到forEach().map().filter()等方法,下面分别阐述一下各方法的优劣. 1.forEach 1.1 基础点   forEac ...

  10. cp命令覆盖文件时不用按Y来确认的方法

    我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖.文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结 ...