如何同时应用具有学习率衰减和更新规则的梯度下降?

LKM*_*LKM 5 momentum deep-learning conv-neural-network tensorflow

我正在做一个与CNN相关的实验。

我要实现的是具有学习速率衰减的梯度下降和AlexNet的更新规则。

我要实现的算法如下(摘自alexnet论文):

从alexnet纸捕获的图片

我认为我正确地学习了速度下降,并且代码如下(我根据global_step正确地检查了学习速度下降):

learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
100000, 0.1, staircase=True)
Run Code Online (Sandbox Code Playgroud)

接下来,我应该执行更新规则(权重衰减为0.005且动量为0.9),我认为我正确地执行了动量,但是找不到实现权重衰减的方法,代码也如下:

cross_entropy = tf.reduce_mean(
    tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits = fc8))
train_step = tf.train.MomentumOptimizer(learning_rate, 0.9).minimize(cross_entropy,global_step=global_step)
Run Code Online (Sandbox Code Playgroud)

我是否在正确地进行“学习率衰减”“动量”?以及如何正确实现“ 0.005的权重衰减”

我使用tf.layers.conv2d作为卷积层,以便在其中包含权重和偏差。代码如下:

conv5 = tf.layers.conv2d(
  inputs=conv4,
  filters=256,
  strides=1,
  kernel_size=[3, 3],
  kernel_initializer= tf.constant_initializer(pre_trained_model["conv5"][0]),
  bias_initializer = tf.constant_initializer(pre_trained_model["conv5"][1]),
  padding="SAME",
  activation=tf.nn.relu,name='conv5')
Run Code Online (Sandbox Code Playgroud)