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.
Vous devez vous connecter pour publier un commentaire.
Comme ils disent, vous ne pouvez pas orthographier "softmax_cross_entropy_with_logits" sans "softmax". Softmax de
[0.45]
est[1]
, etlog(1)
est0
.En outre de Ne de réponse (+1), cette réponse écrite par mrry susceptibles de vous intéresser, car il donne la formule pour calculer la croix de l'entropie dans TensorFlow: