Domanda sul codice di esempio in treno per tensorflow
-
16-10-2019 - |
Domanda
Sto cercando di imparare tensorflow, e ho potuto capire come utilizza il lotto in questo esempio :
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}))
La mia domanda è, perché ottenere una partita di 50 dati di allenamento, ma utilizzare solo il primo per la formazione. Forse non ho capito il codice correttamente.
Soluzione
Se ho capito bene, si stanno chiedendo su questa linea di codice:
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
Qui si specifica solo quale parte del lotto è utilizzato per le funzioni, e che per la classe prevista.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a datascience.stackexchange