Le calcul de la Croix de l'Entropie dans TensorFlow

Je vais avoir un moment difficile avec le calcul de la croix de l'entropie dans tensorflow. En particulier, je suis à l'aide de la fonction:

tf.nn.softmax_cross_entropy_with_logits()

À l'aide de ce qui est en apparence simple code, je ne peux obtenir le retour d'un zéro

import tensorflow as tf
import numpy as np

sess = tf.InteractiveSession()

a = tf.placeholder(tf.float32, shape =[None, 1])
b = tf.placeholder(tf.float32, shape = [None, 1])
sess.run(tf.global_variables_initializer())
c = tf.nn.softmax_cross_entropy_with_logits(
    logits=b, labels=a
).eval(feed_dict={b:np.array([[0.45]]), a:np.array([[0.2]])})
print c

retourne

0

Ma compréhension de la croix de l'entropie comme suit:

H(p,q) = p(x)*log(q(x))

Où p(x) est la vraie probabilité de l'événement x et q(x) est la prédiction de la probabilité de l'événement x.

Il si les deux nombres pour p(x) et q(x) sont utilisés tels que

0<p(x)<1 AND 0<q(x)<1

il devrait être nulle et la croix de l'entropie. Je m'attends à ce que je suis en utilisant tensorflow de manière incorrecte. Merci d'avance pour toute aide.

  • Ainsi, il est intéressant de noter j'ai eu l'idée d'utiliser de la croix de l'entropie de ce projet: github.com/carpedm20/DCGAN-tensorflow/blob/master/model.py ils utilisent pour déterminer si ou non un échantillon provient d'une vraie distribution. Cependant, il semble qu'un binaire softmax de régression est la même que la régression logistique.
InformationsquelleAutor David Kaftan | 2017-03-01