tf.train.Saver()实验

//***********警告:本文只是个人试验,不是官方教程**************

实验1:用Saver保存参数

代码:

import tensorflow as tf

initial = tf.zeros([3,3])
var1= tf.Variable(initial)
saver=tf.train.Saver()
sess=tf.Session()

sess.run(tf.initialize_all_variables())
var1_initial=sess.run(var1)

# --- Save:
saver.save(sess,"saved\SaverTest")
print('Run OK')

在程序所在文件夹会自动创建一个"saved"文件夹,里面会创建保存的参数。

实验2:

直接用Saver恢复参数,是否可行?

代码:

import tensorflow as tf
saver=tf.train.Saver()
sess=tf.Session()
saver.restore(sess,"saved\SaverTest")

print('Run OK')

运行结果:


  File "C:\Users\uidt8491\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\training\saver.py", line 869, in _build
    raise ValueError("No variables to save")

ValueError: No variables to save

代码没有运行到print('Run OK')那步,直接提示“没有变量需要被保存”,说明Saver“出现”之前,就需要有variables被定义,然后才能load变量。

结论:在定义一个Saver之前,要首先有variables被定义,而且结构需要和被保存的“变量们”结构一样

实验3:

将定义变量的那段代码添加后的改进代码:

import tensorflow as tf
initial = tf.zeros([3,3])
var1= tf.Variable(initial)
saver=tf.train.Saver()
sess=tf.Session()
saver.restore(sess,"saved\SaverTest")

print('Run OK')

运行结果:

runfile('D:/Develop/APB/test/test.py', wdir='D:/Develop/APB/test')
WARNING:tensorflow:From C:\Users\uidt8491\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
WARNING:tensorflow:From C:\Users\uidt8491\AppData\Local\Continuum\anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\training\saver.py:1266: checkpoint_exists (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.
Instructions for updating:
Use standard file APIs to check for files with this prefix.
INFO:tensorflow:Restoring parameters from saved\SaverTest
Run OK

成功。

总结:

 在定义一个saver之前,要首先将要保存的变量定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值