Как я могу использовать оптимизатор Adam с планировщиком скорости обучения? - PullRequest
0 голосов
/ 08 марта 2020

Я хочу использовать планировщик скорости обучения с оптимизатором Адама. Я не знаю, верен ли мой код или нет. Я хочу снижать скорость обучения каждые 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)

...