Я хочу использовать планировщик скорости обучения с оптимизатором Адама. Я не знаю, верен ли мой код или нет. Я хочу снижать скорость обучения каждые 50 эпох.
def step_decay(epochs):
initial_lrate = 0.01
drop = 0.1
epochs_drop = 50.0
lrate = initial_lrate * math.pow(drop, math.floor((1+epochs)/epochs_drop))
decay_rate=lrate/epochs
return (lrate,decay_rate)
lrate = LearningRateScheduler(step_decay)
decay_rate=LearningRateScheduler(step_decay)
opt_adam = keras.optimizers.Adam(lr=lrate, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=decay_rate)
model.compile(loss='categorical_crossentropy', optimizer=opt_adam, metrics=['accuracy'])
history=model.fit_generator(generate_arrays_for_training(indexPat, filesPath, end=75),
validation_data=generate_arrays_for_training(indexPat, filesPath, start=75),
steps_per_epoch=int((len(filesPath)-int(len(filesPath)/100*25))),#*25),
validation_steps=int((len(filesPath)-int(len(filesPath)/100*75))),#*75),
verbose=2,
epochs=300, max_queue_size=2, shuffle=True, callbacks=callbacks_list)