【发布时间】: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