Тензор потока) Как применить градиентный спуск с затуханием скорости обучения и обновить правило одновременно?
Я делаю эксперимент, связанный с CNN.
Я хочу реализовать градиентный спад с затуханием скорости обучения и правило обновления от AlexNet.
Алгоритм, который я хочу реализовать, приведен ниже (снимок из бумаги alexnet):
Я думаю, что я правильно понизил скорость обучения, и код приведен ниже (я правильно проверил снижение скорости обучения в соответствии с 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')