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

Tensorflow 如何在学习率衰减和规则更新的同时应用梯度下降法?,tensorflow,deep-learning,conv-neural-network,momentum,Tensorflow,Deep Learning,Conv Neural Network,Momentum,我正在做一个与CNN有关的实验 我想要实现的是学习率衰减的梯度下降和AlexNet的更新规则 我想要实现的算法如下(从alexnet论文中捕获的图片): 我认为我正确地进行了学习率衰减,代码如下(我根据global_步骤正确地检查了学习率衰减): 接下来,我应该实现更新规则(权重衰减为0.005,动量为0.9) 我认为我正确地使用了动量,但未能找到实现重量衰减的方法,代码如下: cross_entropy = tf.reduce_mean( tf.nn.softmax_cross_en

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

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

我想要实现的算法如下(从alexnet论文中捕获的图片):

我认为我正确地进行了学习率衰减,代码如下(我根据global_步骤正确地检查了学习率衰减):

接下来,我应该实现更新规则(权重衰减为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)
我的“学习速度衰减”和“动量”是否正确?我如何才能正确实现“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')

请看一看@AllenLavoie你能帮忙吗?在这种情况下,你可能会更好,尽管你可以得到层创建的权重变量。@AllenLavoie我将学习你建议的l2_正则化器,谢谢。但是,对于从层中获取权重变量的方法,如何获取变量?因为我在每个层中使用初始值设定项而不是tf.Variable(…,name='weights')初始化权重/偏差,所以我找不到在层中获取变量的方法。然后我会将其包装在变量范围中。大概其中一个名字中有“权重”,另一个名字中有“偏差”。
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')