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.

War es hilfreich?

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
scroll top