2017-05-06 2 views

Répondre

1

2D tenseurs avec des distributions de probabilités dans la 2ème dimension:

def crossentropy(p_approx, p_true): 
    return -tf.reduce_sum(tf.multiply(p_true, tf.log(p_approx)), 1) 
2

Je pense que vous voulez utiliser softmax cross-entropy loss de tensorflow. Souvenez-vous que l'entrée de cette couche est un logit non scalé, c'est-à-dire que vous ne pouvez pas envoyer de sortie softmax à cette couche. Cela donnera de mauvais résultats.

Une autre raison importante d'utiliser cette perte au lieu d'une combinaison de softmax + entropie croisée catégorique est que la perte de softmax est plus stable. Voir this perte dans Caffe. Pour plus d'informations sur la stabilité, voir this.