Frage zum Zugbeispielcode für TensorFlow
-
16-10-2019 - |
Frage
Ich versuche TensorFlow zu lernen, und ich konnte verstehen, wie es das verwendet Charge in Dies Beispiel:
cross_entropy = -tf.reduce_sum(y_*tf.log(y_conv))
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
sess.run(tf.initialize_all_variables())
for i in range(20000):
batch = mnist.train.next_batch(50)
if i%100 == 0:
train_accuracy = accuracy.eval(feed_dict={
x:batch[0], y_: batch[1], keep_prob: 1.0})
print("step %d, training accuracy %g"%(i, train_accuracy))
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
print("test accuracy %g"%accuracy.eval(feed_dict={
x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))
Meine Frage ist, warum es eine Stapel von 50 Trainingsdaten erhält, aber nur das erste für das Training verwendet. Vielleicht habe ich den Code nicht richtig verstanden.
Lösung
Wenn ich Sie richtig verstanden habe, fragen Sie nach dieser Codezeile:
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
Hier geben Sie nur an, welcher Teil von Batch für Funktionen verwendet wird und welche für Ihre vorhergesagte Klasse.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange