Как я могу получить значение регулирования в модели керас - PullRequest
0 голосов
/ 08 января 2019

Я создал NN-модель, используя керасы и тензорный поток, как показано ниже, и я хочу использовать регуляризации L2 в моей модели.

Но когда я вычисляю свою потерю, я не знаю, как добавить свои значения регуляризации. Может кто-нибудь мне помочь?

x = tf.placeholder(tf.float32, [None, INPUT_NODE], name='x-input')
    y_ = tf.placeholder(tf.float32, [None, OUTPUT_NODE], name='y-input')
    Layer1=Dense(INPUT_NODE,activation='relu',kernel_regularizer=keras.regularizers.l2(REGULARIZATION_RATE))(x)
    y=Dense(OUTPUT_NODE,activation='relu',kernel_regularizer=keras.regularizers.l2(REGULARIZATION_RATE))(Layer1)

loss=tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1))

1 Ответ

0 голосов
/ 08 января 2019

Если он был в тензорном потоке, вычисляемая вами регуляризация сохраняется в коллекции под названием «регуляризация_лоссы», и, поскольку я предполагаю, что ваши кераты используют тензор потока в бэкэнде, вы можете попробовать выполнить:

loss =  # your loss function
reg_loss = tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES)
total_loss = loss + reg_loss

Надеюсь, это поможет!

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