我是靠谱客的博主 轻松小甜瓜,最近开发中收集的这篇文章主要介绍TF:tf.train.optimizer,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

tf的7中优化方法

optimizer = tf.train.AdadeltaOptimizer(rate)
optimizer = tf.train.AdagradOptimizer(rate)
optimizer = tf.train.AdamOptimizer(rate)
optimizer = tf.train.FtrlOptimizer(rate)
optimizer = tf.train.GradientDescentOptimizer(rate)
optimizer = tf.train.MomentumOptimizer(rate)
optimizer = tf.train.RMSPropOptimizer(rate)
train = optimizer.minimize(loss, global_step=step)

用法:

opt = tf.train.XXXOptimizer(learning_rate)#不同的优化器还会有个别自己的参数
opt_op = opt.minimize(loss,
global_step=None,
var_list=None,
gate_gradients=1,
name=None)
'''
Args:
loss:损失函数
global_step:(见下文)
var_list:最小化loss时要优化的变量,默认是GraphKeys.TRAINABLE_VARIABLES中的变量
gate_gradients:可选GATE_NONE、GATE_OP、GATE_GRAPH
name:给返回的op取的名字
'''

global_step用法

#3种定义
global_steps = tf.Variable(0, trainable=False)
global_steps = tf.train.get_or_create_global_step()
global_steps = tf.contrib.framework.get_or_create_global_step()
opt_op = opt.minimize(loss, global_step = global_steps)

必须有global_step = global_steps这个参数,global_steps(不是global_step)才会自动加1,相关的学习率等才会自动递减:

import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.float32, shape=[None, 1], name='x')
y = tf.placeholder(tf.float32, shape=[None, 1], name='y')
w = tf.Variable(tf.constant(0.0))
#global_steps = tf.Variable(0, trainable=False)
#global_steps = tf.train.get_or_create_global_step()
global_steps = tf.contrib.framework.get_or_create_global_step()
learning_rate = tf.train.exponential_decay(0.1, global_steps, 10, 2, staircase=False)
loss = tf.pow(w*x-y, 2)
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_steps)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(10):
sess.run(train_step, feed_dict={x:np.linspace(1,2,10).reshape([10,1]), y:np.linspace(1,2,10).reshape([10,1])})
print("--Step: %2d, learn_rate: %f." % (sess.run(global_steps), sess.run(learning_rate)))

如果没有global_step = global_steps,learning_rate恒为0.1。[参考]

最后

以上就是轻松小甜瓜为你收集整理的TF:tf.train.optimizer的全部内容,希望文章能够帮你解决TF:tf.train.optimizer所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部