функция стоимости после преобразования tf.layers в tf.keras.layers - PullRequest
0 голосов
/ 11 марта 2019

У меня есть CNN, где выходным измерением является [Нет, 10]

Это проблема с несколькими метками, где выходные данные указывают на возможные категории, которым может принадлежать x.(например, изображение может быть классифицировано как cat dark и т. д.)

Что у меня сейчас есть, как я могу изменить код на версию keras?Я не могу найти эквивалент sigmoid_cross_entropy_with_logits

 model = tf.layers.dense(L3, category_num, activation=None)
 cross_entropy = tf.nn.sigmoid_cross_entropy_with_logits(logits=model, labels=Y)

 cost = tf.reduce_mean(tf.reduce_sum(cross_entropy, axis=1))
 optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

в керасе:

#you model here -- last layer:

model.add(Dense(10))
model.add(Activation('sigmoid'))
model.compile(loss='categorical_crossentropy',
              optimizer="adam",metrics=['accuracy'])
0 голосов
/ 11 марта 2019

Прямой альтернативой в Keras является использование активации сигмоидального слоя в выходном слое и binary_crossentropy в качестве функции стоимости.

net.add(Dense(..., activation='sigmoid'))
net.compile(optimizer, loss='binary_crossentropy')

Взгляните https://github.com/keras-team/keras/issues/741

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