Я пытаюсь добавить перезапуски скорости обучения - то есть мою собственную гораздо менее изощренную версию Стохастического градиентного спуска с теплым перезапуском Лощилова и Хаттера (https://arxiv.org/abs/1608.03983)) в мою модель CNN с предиктором последовательности .
Моя идея, в качестве первого эксперимента, состояла в том, чтобы скорость обучения начиналась с 0,3 и уменьшалась вдвое в каждую эпоху. Затем, на каждой 15-й эпохе, она вернется к 0,3.
LR<-0.3
optimizer_sgd(lr=LR,nesterov = TRUE)
lr_schedule<-function(epoch) {
model_big$optimizer$lr=LR/(2 ^ (epoch%%15))
}
cb_lr<-callback_learning_rate_scheduler(lr_schedule)
model_big%>%
compile(loss = 'binary_crossentropy',
optimizer = 'sgd',metrics = 'accuracy')
history<-model_big%>%
fit(x=list(x1,x2,x3),y=y,epochs = 31,callbacks=c(cb_lr))
Однако я получил следующую ошибку:
Epoch 1/31
Error in py_call_impl(callable, dots$args, dots$keywords) :
RuntimeError: Evaluation error: unused argument (lr = 0.00999999977648258).
Detailed traceback:
File "/Users/d/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/keras/engine/training.py", line 1712, in fit
validation_steps=validation_steps)
File "/Users/d/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/keras/engine/training.py", line 1180, in _fit_loop
callbacks.on_epoch_begin(epoch)
File "/Users/d/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/keras/callbacks.py", line 63, in on_epoch_begin
callback.on_epoch_begin(epoch, logs)
File "/Users/d/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/keras/callbacks.py", line 611, in on_epoch_begin
lr = self.schedule(epoch, lr=lr)
File "/Library/Frameworks/R.framework/Versions/3.4/Resources/library/reticulate/python/rpytools/call.py", line 21, in python_function
raise RuntimeError(res[kErrorKey])
Может кто-нибудь помочь, пожалуйста?