Могу ли я создать пользовательский термин регуляризации (Keras), используя не только матрицу весов в качестве параметра? - PullRequest
0 голосов
/ 28 февраля 2020

Как указано в заголовке, я хотел бы иметь возможность штрафовать веса моей модели, создавая пользовательский термин регуляризации.

Например:

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))

Однако, глядя на Керас c (https://keras.io/regularizers/), я вижу:

" Разработка новых регуляризаторов Любая функция, которая принимает весовую матрицу и возвращает тензор вклада потерь, может быть использована в качестве регуляризатора, например, :"

Можно ли таким образом создать такой настраиваемый регуляризатор?

1 Ответ

1 голос
/ 28 февраля 2020

Да, вы можете сделать это следующим образом:

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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...