Написать свой обратный вызов и использовать backend set_value
method
from keras.models import Sequential
from keras.layers import Dense
import keras
import numpy as np
import tensorflow.keras.backend as K
model = Sequential()
model.add(Dense(8, input_dim=2, activation='relu'))
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
x = np.random.randn(10,2)
y = np.random.randint(0,2,(10,2))
class lr_callback(keras.callbacks.Callback):
def on_batch_end(self, batch, logs=None):
K.set_value(self.model.optimizer.lr, 0.54321)
model.fit(x,y,epochs=2,batch_size=4,shuffle=False, callbacks=[lr_callback()])
print (K.get_value(model.optimizer.lr))