模型初始化后激活正则化

Regularization of activations once the model is initialized

我想在 Tensorflow.keras 中使用层循环在预训练网络上添加激活正则化。

如果我想正则化 weightsbiases,我可以这样做:

l1=0.001
l2=0.001
for layer in model.layers:
    if isinstance(layer, DepthwiseConv2D):
        layer.add_loss(regularizers.l1_l2(l1,l2)(layer.depthwise_kernel))
    elif isinstance(layer, layers.Conv2D) or isinstance(layer, layers.Dense):
        layer.add_loss(regularizers.l1_l2(l1,l2)(layer.kernel))
    if hasattr(layer, 'bias_regularizer') and layer.use_bias: 
        layer.add_loss(regularizers.l1_l2(l1,l2)(layer.bias))

据我了解和测试:这是有效的。

但是我不清楚如何针对 activations 正则化执行此操作。具体来说,我想将激活层的输出添加到损失中。

我想我应该这样做:

for layer in model.layers:
    if isinstance(layer, Activation):
        layer.add_loss(regularizers.l1_l2(l1,l2)(layer.XXX))

但我不清楚应该用什么替换上面的 XXX。

在此先感谢您的帮助!

But it is not clear to me what should be replacing XXX in the above.

layer.output