首更:

由于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. 简单的栈溢出demo

    Code package startnow; /** * @auther draymonder */ public class StackOverFlowTest { public static vo ...

  2. 题解——Codeforces Round #508 (Div. 2) T2 (构造)

    按照题意构造集合即可 注意无解情况的判断 #include <cstdio> #include <algorithm> #include <cstring> #in ...

  3. 论文笔记:Capsules for Object Segmentation

    Capsules for Object Segmentation 2018-04-16  21:49:14 Introduction: ----

  4. 论文笔记之:SeqGAN: Sequence generative adversarial nets with policy gradient

    SeqGAN: Sequence generative adversarial nets with policy gradient  AAAI-2017 Introduction :  产生序列模拟数 ...

  5. 【Mybatis】-- Mapper动态代理开发注意事项

    1.1. Mapper动态代理方式 1.1.1. 开发规范 Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对 ...

  6. skype for business 无法共享桌面、无法传输图片

    以管理员身份运行如下PowerShell命令,清除Skype for Business缓存记录 #以管理员身份运行如下PowerShell命令,清除Skype for Business缓存记录 Sto ...

  7. 使用MapperScannerConfigurer简化MyBatis配置

    MyBatis的一大亮点就是可以不用DAO的实现类.如果没有实现类,Spring如何为Service注入DAO的实例呢?MyBatis-Spring提供了一个MapperFactoryBean,可以将 ...

  8. PTA 7-2 符号配对(20 分)

    7-2 符号配对(20 分) 请编写程序检查C语言源程序中下列符号是否配对:/*与*/.(与).[与].{与}. 输入格式: 输入为一个C语言源程序.当读到某一行中只有一个句点.和一个回车的时候,标志 ...

  9. 理解ffmpeg中的pts,dts,time_base

    首先介绍下概念: PTS:Presentation Time Stamp.PTS主要用于度量解码后的视频帧什么时候被显示出来 DTS:Decode Time Stamp.DTS主要是标识读入内存中的b ...

  10. centos nginx 中安装ssl证书 以及在项目中的使用

    今天阿里云的证书到期了,重新申请了一个,下面是从申请到安装以及结合项目使用的过程: 1.登录阿里云   2.在左侧找到SSL证书 3.申请免费的证书 4.下载证书 5.根据说明配置nginx 6.在项 ...