Как добавить норму L1 к функции потерь в Keras или Tensorflow? - PullRequest
1 голос
/ 15 октября 2019

Я пытаюсь воспроизвести результаты эксперимента из статьи с углубленным изучением,

Я заметил, что функция потерь, кросс-энтропия категории с регуляризацией L1, можно увидеть ниже,

enter image description here

Итак, как рассчитать сложность модели и добавить правильную пользовательскую функцию потерь в Keras / Tensorflow?

1 Ответ

2 голосов
/ 15 октября 2019

Это просто норма и не обязательно является 1-нормой. Тем не менее, в тензорном потоке это довольно просто, если ваши параметры хранятся в списке (я назову это para_list):

l1_reg_term = sum([tf.reduce_sum(tf.abs(_var)) for _var in para_list])
reg_loss = loss + alpha * l1_reg_term

Один из способов получить ваши параметры - назвать их. Затем вы можете просто извлечь их из глобального пространства с помощью tf.get_global_variables () или tf.get_trainable_variables ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...