TensorFlow 中的 tf.train.exponential_decay() 指数衰减法

exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None)

使用方式为

tf.train.exponential_decay( )

在 Tensorflow 中,exponential_decay()是应用于学习率的指数衰减函数。

在训练模型时,通常建议随着训练的进行逐步降低学习率。该函数需要`global_step`值来计算衰减的学习速率。

该函数返回衰减后的学习率。该函数的计算方程式如下

参数:

learning_rate - 初始学习率

global_step - 用于衰减计算的全局步骤。 一定不为负数。喂入一次 BACTH_SIZE 计为一次 step

decay_steps - 衰减速度,一定不能为负数,每间隔decay_steps次更新一次learning_rate值

decay_rate - 衰减系数,衰减速率,其具体意义参看函数计算方程。

decay_rate:指数衰减参数(对应α^t中的α)

decay_steps为衰减速度。

衰减速度,一定不能为负数。

learning rate更新的step周期,即每隔多少step更新一次learning rate的值

learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None

如果参数`staircase`是‘True`,则`global_step / decay_steps`是整数除法,衰减学习率遵循阶梯函数。

global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.1
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
100000, 0.96, staircase=True)
# Passing global_step to minimize() will increment it at each step.
learning_step = (
tf.train.GradientDescentOptimizer(learning_rate)
.minimize(...my loss..., global_step=global_step)
)

通过tf.train.exponential_decay函数实现指数衰减学习率。

步骤:1.首先使用较大学习率(目的:为快速得到一个比较优的解);

2.然后通过迭代逐步减小学习率(目的:为使模型在训练后期更加稳定);

原文地址:https://www.cnblogs.com/gengyi/p/9898960.html

时间: 2024-11-06 03:45:49

TensorFlow 中的 tf.train.exponential_decay() 指数衰减法的相关文章

tensorflow中使用tf.variable_scope和tf.get_variable的ValueError

ValueError: Variable conv1/weights1 already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at: 在使用tensorflow 中的tf.variable_scope和tf.get_variable搭建网络时,重复运行程序会报以上的ValueError错误,这是因为第二次运行时,内存中已经存在名字相同的层或者参数,发生了冲突,所以会提示

tensorflow中使用tf.ConfigProto()配置Session运行参数&&GPU设备指定

1. 使用tf.ConfigProto()配置Session运行参数 记录设备指派情况:tf.ConfigProto(log_device_placement=True) 自动选择运行设备: tf.ConfigProto(allow_soft_placement=True) 限制GPU资源使用: (1)动态申请显存 config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(confi

TensorFlow 的学习效率的指数衰减法

train_step = tf.train.GradientDescentOptimizer(x) 在之前的几个例子中都出现了如上代码. 这个优化算法的参数就是学习效率.那么这个学习效率是什么意思,到底取什么样的值比较好呢? 之前已经讲过,优化算法会反向修改函数中设置为Variable的变量值,使得误差逐步缩小.而这里的学习效率就是Variable更新变化的幅度. 如果幅度过大,参数就很可能跨过最优值,最后在最优值的两侧来回浮动. 如果幅度太小,又会大大的增加学习时间. 比较理想的做法是,在学习

TensorFlow 实战(二)—— tf train(优化算法)

Training | TensorFlow tf 下以大写字母开头的含义为名词的一般表示一个类(class) 1. 优化器(optimizer) 优化器的基类(Optimizer base class)主要实现了两个接口,一是计算损失函数的梯度,二是将梯度作用于变量.tf.train 主要提供了如下的优化函数: tf.train.Optimizer tf.train.GradientDescentOptimizer tf.train.AdadeltaOpzimizer Ada delta tf.

tensorflow API _ 3 (tf.train.polynomial_decay)

学习率的三种调整方式:固定的,指数的,多项式的 def _configure_learning_rate(num_samples_per_epoch, global_step): """Configures the learning rate. Args: num_samples_per_epoch: The number of samples in each epoch of training. global_step: The global_step tensor. Re

TensorFlow中数据读取之tfrecords

关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据. 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况). 对于数据量较小而言,可能一般选择直接将数据加载进内存,然后再分batch输入网络进行训练(tip:使用这种方法时,结合yield 使用更为简洁,大家自己

tf.train.examle函数

在自定义数据集中: example = tf.train.Example(features=tf.train.Features(feature={ 'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw])), 'label': tf.train.Feature(int64_list=tf.train.Int64List(value=labels)) })) 下面简要谈一谈我对其的理解创建 Example

tf.train.Saver()-tensorflow中模型的保存及读取

作用:训练网络之后保存训练好的模型,以及在程序中读取已保存好的模型 使用步骤: 实例化一个Saver对象 saver = tf.train.Saver() 在训练过程中,定期调用saver.save方法,像文件夹中写入包含当前模型中所有可训练变量的checkpoint文件 saver.save(sess,FLAGG.train_dir,global_step=step) 之后可以使用saver.restore()方法,重载模型的参数,继续训练或者用于测试数据 saver.restore(sess

图融合之加载子图:Tensorflow.contrib.slim与tf.train.Saver之坑

import tensorflow as tf import tensorflow.contrib.slim as slim import rawpy import numpy as np import tensorflow as tf import struct import glob import os from PIL import Image import time __sony__ = 0 __huawei__ = 1 __blackberry__ = 2 __stage_raw2ra