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

时间:2017-05-23 08:46:09

标签: tensorflow deep-learning conv-neural-network momentum

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

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

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

  

captured picture from alexnet paper

我认为我正确地学习了速率衰减并且代码在下面(我根据global_step正确地检查了学习率衰减):

learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
100000, 0.1, staircase=True)

接下来,我应该实施更新规则(重量衰减为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')

0 个答案:

没有答案