[Tensorflow] Session.run、model保存和optimizer优化器
来源:互联网 发布:flash cs6 mac版 编辑:程序博客网 时间:2024/04/28 14:21
一、Session.run()
tf.Session.run(fetches, #一个tensor或tensor list feed_dict=None, options=None, run_metadata=None)#Runs operations and evaluates tensors in fetches.
二、VARIABLES save and restore
Variables are saved in binary files that, roughly, contain a map from variable names to tensor values。
每一个variable的name属性 对应 其tensor的值。
(1)tf.train.saver() 对象(tensor的name亦在此发挥作用)tf.train.saver只会保存variable类型的tensor
saver=tf.train.Saver( var_list=None, #要保存的vairables,默认为None,即保存所有的variables max_to_keep=5 #最多保留5个模型(默认为5) #等等一些参数 )#var_list会在variable name与其tensor value建立映射#var_list参数取值(1):dict#*********A dict of names to variables: #The keys are the names that will be used to save or restore the variables in the checkpoint files.***#var_list参数取值(2):list#****************A list of variables: #The variables will be keyed with their op name in the checkpoint files.*****************************#保存xxx,yyy两个variable,restore时,交换二者的值(通过交换二者的name)#文件一:mysave.py ====================保存======================import tensorflow as tfxxx=tf.Variable(tf.constant([1,1,1]),name="xxx") yyy=tf.Variable(tf.constant([2,2,2]),name="yyy") sess=tf.Session()saver=tf.train.Saver( var_list=[xxx,yyy] )sess.run(tf.global_variables_initializer()) saver.save(sess,"./model") #Tips:var_list在为None(默认)时,会以name->tensor value的形式保存所有的Vairable。所以一般不设置var_list#文件二:myrestore.pyimport tensorflow as tfxxx=tf.Variable(tf.constant([1,1,1]),name="yyy") yyy=tf.Variable(tf.constant([2,2,2]),name="xxx") sess=tf.Session()saver=tf.train.Saver( var_list=[xxx,yyy] )sess.run(tf.global_variables_initializer()) saver.restore(sess,"./model") print(sess.run(xxx))print(sess.run(yyy))#可以看到,xxx,yyy的值改变了。#Tips: 如果模型发生了修改(即使只修改了optimizer)那么都要定义var_list才能实现restore.
(2)模型保存:tr.train.saver().save()
save/restore
saver.save(sess, "./model.cjf", #模型前缀(如果使用相对路径,需要加上./) global_step=step #globa_step会加在文件名后 )#返回值:正确返回保存的路径(模型分块则添加分块信息),错误返回Nonesaver.restore(sess.save_path)
三、optimizer
(1)三种比较优化器
tf.train.MomentumOptimizer(learning_rate, #学习率 momentum, #动量 use_locking=False, name='Momentum', use_nesterov=False)
(2)例子【这三种优化器比较】
import tensorflow as tf import numpy as npimport sys import mathx_data=np.random.rand(100).astype(np.float32)#print(x_data)#sys.exit(0)y_data=x_data*0.1+0.3W=tf.Variable(tf.constant([100],dtype=tf.float32))b=tf.Variable(tf.constant([100],dtype=tf.float32))x=tf.placeholder(tf.float32,[1])y=x*W+b _y=tf.placeholder(tf.float32,[1])loss=tf.square(y-_y)#四种梯度下降法#train=tf.train.GradientDescentOptimizer(1e-1).minimize(loss) #1300 steps后达到误差范围。#train=tf.train.AdamOptimizer(1e-1).minimize(loss) #9000 steps后达到误差范围。train=tf.train.MomentumOptimizer(1e-1,0.9).minimize(loss) #500 steps后达到误差范围。sess=tf.Session()sess.run(tf.global_variables_initializer())idx=0while True: xx=[x_data[idx%100]] yy=[y_data[idx%100]] idx+=1 ww,bb,tt=sess.run([W,b,train],feed_dict={x:xx,_y:yy}) if math.fabs(ww-0.1)<1e-6 and math.fabs(bb-0.3)<1e-6: print(ww,bb) print("train_step:%d" %(idx)) break; #说明:使用0.1的学习率,训练一维线性方程 y=0.1*x+0.3,初始时,W和b设为100。运行到W,b误差小于1e-6为止。
阅读全文
0 0
- [Tensorflow] Session.run、model保存和optimizer优化器
- tensorflow 优化器optimizer
- Tensorflow 优化器 optimizer
- tensorflow 优化器optimizer
- tensorflow中的优化器:优化器Optimizer
- TensorFlow学习(四):优化器Optimizer
- TensorFlow学习(四):优化器Optimizer
- TensorFlow学习(四):优化器Optimizer
- TensorFlow深度学习优化器Optimizer
- 7、Tensorflow:Session.run和Tensor.eval
- tensorflow函数解析:Session.run和Tensor.eval
- TensorFlow基础2:Session.run()和Tensor.eval()的区别
- 【TensorFlow 学习】Session.run()和Tensor.eval()的区别
- Oracle优化器(Optimizer)!
- Oracle优化器(Optimizer)
- Catalyst Optimizer优化器
- Oracle 优化器(Optimizer)
- TensorFlow学习--tf.session.run()
- Spring应用(一)
- 微信请求工具类
- opencv2413+VS2013静态编译
- 文字高度的适配
- Linux下使用ps命令来查看Oracle相关的进程
- [Tensorflow] Session.run、model保存和optimizer优化器
- RSA破解作业
- Windows 通过以下参数找到端口的上运行的服务进程。
- C# 2.0 中的新特性
- Ubuntu上编译hostapd
- 【jmeter-maven-plugin】七、使用其他Java库+JVM配置
- Map遍历的几种方法
- web前端学习前奏
- js 函数调用各种模式详解