我是否可以创建一个自定义正则化项(Keras),而不仅仅使用权重矩阵作为参数?

2024-05-14 06:04:08 发布

您现在位置:Python中文网/ 问答频道 /正文

如标题中所述,我希望能够通过创建自定义正则化项来惩罚我的模型权重

例:

def customized_regularizer(weight_matrix, parameterA, parameterB):
    return(K.sum(K.dot(parameterA, weight_matrix) - parameterB))

model.add(Dense(64, input_dim=64,
                kernel_regularizer=customized_regularizer))

然而,在查看Keras文档(https://keras.io/regularizers/)时,我看到:

“开发新的正则化器 任何接受权重矩阵并返回损失贡献张量的函数都可以用作正则化器,例如:“

因此,是否可以创建这样一个自定义正则化器


Tags: 模型标题returndefmatrix权重sumweight
1条回答
网友
1楼 · 发布于 2024-05-14 06:04:08

是的,您可以这样做:

def custom_reg_builder(parameterA, parameterB):

    def custom_reg(weight_matrix):
        return(K.sum(K.dot(parameterA, weight_matrix) - parameterB))

    return custom_reg


# ...

model.add(Dense(64, input_dim=64, kernel_regularizer=custom_reg_builder(0.1, 0.01)))

相关问题 更多 >