Keras中Activity Regularizer:应用于激活前还是激活后?
解决方案:将Activity正则化器应用于激活函数之后
在Keras中,当你在Dense层同时指定activation和activity_regularizer时,正则化器默认是作用于激活函数后的层输出的。但如果需要彻底明确控制这一逻辑(或遇到特殊场景需要强制实现),可以通过拆分层的方式确保正则化仅作用于激活后的结果:
调整步骤及代码示例
原代码:
output = Dense(units=12, activation='sigmoid', activity_regularizer=L1(1e-2))(input)
调整后(明确将正则化器绑定到激活后的输出):
# 仅执行线性变换的Dense层,不包含激活和正则化 dense_linear = Dense(units=12)(input) # 应用sigmoid激活,并在此层添加活动正则化器 output = Activation('sigmoid', activity_regularizer=L1(1e-2))(dense_linear)
这种拆分方式直接把正则化器绑定到Activation层,确保惩罚项仅基于激活函数处理后的输出计算,完全匹配你的业务需求。
内容的提问来源于stack exchange,提问作者user7585848
相关产品推荐
相关产品推荐

