【问题标题】:Regularization of activations once the model is initialized模型初始化后激活的正则化
【发布时间】:2019-09-16 12:10:29
【问题描述】:

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

如果我想规范 weights 或 biases,我可以这样做:

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 正则化执行此操作。具体来说,我想在损失中添加 Activation 层的 OUTPUT。

我想我应该这样做:

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

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

提前感谢您的帮助!

【问题讨论】:

    标签: python keras keras-layer tf.keras regularized


    【解决方案1】:

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

    layer.output
    

    【讨论】:

    • 它工作正常,谢谢!内存很重,但我想这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多