Ich führe den folgenden Code für TensorFlow und alle Wahrscheinlichkeiten sind NaN
und alle Vorhersagen sind 0
. Die Genauigkeit funktioniert jedoch. Ich habe keine Ahnung, wie das zu debuggen ist. Jede und jede Hilfe wird geschätzt.Tensor Flow alle Vorhersagen sind 0
x = tf.placeholder("float", shape=[None, 22])
W = tf.Variable(tf.zeros([22, 5]))
y = tf.nn.softmax(tf.matmul(x, W))
y_ = tf.placeholder(tf.float32, [None, 5])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
#cross_entropy = -tf.reduce_sum(tf_softmax_correct*tf.log(tf_softmax + 1e-50))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(100):
batch_xs, batch_ys = random.sample(allTrainingArray,100), random.sample(allTrainingSkillsArray,100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
#test on itself
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print "accuracy", sess.run(accuracy, feed_dict={x: batch_xs, y_: batch_ys})
probabilities = y
print "probabilities", probabilities.eval(feed_dict={x: allTrainingArray}, session=sess)
prediction=tf.argmax(y,1)
print "predictions", prediction.eval(feed_dict={x: allTrainingArray}, session = sess)
@rrao Ich habe beide Ihre Vorschläge aufgenommen, und immer noch kein Glück:/Ich habe einige Debugging und es scheint, dass nach meinem Trainingsschritt, die Gewichte sind alle NaN, was die zukünftigen Berechnungen vermasselt. Hast du eine Ahnung, was die Gewichte nach dem Trainingsschritt zu NaN machen könnte? –
Vielleicht versuchen, die Lernrate zu reduzieren. – natschz
Das erste, was ich ausprobiert habe:/kein Glück. Ich habe keine Ahnung was das ist. Könnten es die Daten sein? Was ich habe, sind 283 Reihen von Spielern mit 22 verschiedenen Attributen in allTrainingArray, und das entspricht 283 Spielern mit [0,0,0,0,1] (oder 1 an jedem dieser Orte), was anzeigt, um welche Art von Spieler es sich handelt . Ich schaute auf das TF-Beispiel, um meine Datenfelder zu erstellen, so dass ich nicht dachte, dass es ein Problem wäre. –