我想用自定义激活层训练一个 keras 模型。自定义激活层有一个固定的不可训练参数。
我想在几个时期后的训练期间更改/设置模型中所有自定义激活层的这个不可训练参数。
如何使用 keras 回调来实现这一点?
我想用自定义激活层训练一个 keras 模型。自定义激活层有一个固定的不可训练参数。
我想在几个时期后的训练期间更改/设置模型中所有自定义激活层的这个不可训练参数。
如何使用 keras 回调来实现这一点?
您需要为此编写一个自定义回调,以实现该on_epoch_end
方法。大致它应该看起来像这样
class CustomCallback(keras.callbacks.Callback):
def __init__(self, freq):
super().__init__()
self.freq = freq # how often to change the parameter
def on_epoch_end(self, epoch):
if epoch % freq == 0 and epoch > 0:
weights = self.model.get_weights()
# here you change the weight you want, e.g. it is the 5th layer
weights[4] = weights[4] / 10
self.model.set_weights(weights)