【tensorflow入门】15、神经网络中变量的存储和读取---saver+restore

tensorflow中允许将训练的variable存储起来,下次读取并接着训练。

存储saver:

import tensorflow as tf
import numpy as np  #使用numpy代码会省事些
#Save to file
#remember to define the same dtype and shape when restore
W = tf.Variable([[1,2,3],[3,4,5]],dtype=tf.float32,name='weights') #最好定义下dtype
b = tf.Variable([[1,2,3]],dtype=tf.float32,name='biases')

init = tf.global_variables_initializer()

#定义tensorflow的saver,用它来存储各种变量
saver = tf.train.Saver()

with tf.Session() as sess:
    sess.run(init)
#开始保存的这一步了 这里保存后会返回一个值,保存在save_path中   保存为ckpt后缀
    save_path = saver.save(sess,"my_net/save_net.ckpt")  #restore的时候会把saver换为restore
    print("Save to path:",save_path)

读取restore:

import tensorflow as tf
import numpy as np  #使用numpy代码会省事些


#restore variables
#redefine the same shape and same type for your variables 读取时的形状和数据类型必须和当初一样才能正确的导入
W = tf.Variable(np.arange(6).reshape((2,3)),dtype=tf.float32,name="weights")   #先定义一个空的、没有意义的框架,可以随便取值

#not need init step  #restore的时候不用定义initial
saver = tf.train.Saver()  #用saver来提取到文件
with tf.Session() as sess:
    saver.restore(sess,"my_net/save_net.ckpt")   #因为不用运行initial,所以可以直接提取它
    print("weights:",sess.run(W))   #看一下这两个参数
    print("biases:",sess.run(b))

#目前tensorflow只能保存variable,还不能保存整个神经网络框架 。因此可以重新定义一下框架,
#再把 variable重新放进来继续学习  

注意:

saver之后最好重启软件再运行restore,不然容易报很长的错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值