我有一个CNN,其输出尺寸为[None,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)
答案 0 :(得分:0)
Keras的直接替代方法是在输出层中使用S型激活,并使用binary_crossentropy作为成本函数。
net.add(Dense(..., activation='sigmoid'))
net.compile(optimizer, loss='binary_crossentropy')