2016-08-02 11 views
0

В настоящее время я воспроизвожу код для char-RNN, описанный в http://karpathy.github.io/2015/05/21/rnn-effectiveness/. Есть коды, уже реализованные в тензорном потоке, и код, который я имею в виду, равен https://github.com/sherjilozair/char-rnn-tensorflow/blob/master/train.py У меня возникает вопрос об уменьшении скорости обучения. В коде оптимизатор определяется как AdamOptimizer. Когда я прошел через код, я увидел строку следующим образом:скорость обучения в LSTM

for e in range(args.num_epochs): 
     sess.run(tf.assign(model.lr, args.learning_rate * (args.decay_rate ** e))) 

, который регулирует скорость обучения константы распада. Мой вопрос: не оптимист Адама, который позволяет нам контролировать скорость обучения? Почему мы все еще используем скорость распада в отношении скорости обучения здесь?

ответ

0

Я думаю, вы имеете в виду RMSprop, а не Адам, оба из указанных вами кодов используют RMSprop. RMSprop только градиенты масштаба не имеют слишком больших или слишком малых норм. Таким образом, важно разлагать скорость обучения, когда нам приходится замедлять обучение после нескольких эпох.

Смежные вопросы