machine learning - reconocimiento - ¿Cómo registro o veo el costo utilizado en el entrenamiento de una red neuronal TensorFlow con abandono?
tensorflow reconocimiento de imagen (1)
¿Cómo veo la precisión y el costo de los abandonos realmente utilizados en el entrenamiento de una red neuronal TensorFlow con abandono ?
Como era de esperar, cada vez que ejecuto un resumen , por ejemplo, con
train_writer.add_summary(sess.run(merged, feed_dict=foo), step)
o
print(sess.run(accuracy, feed_dict=foo))
si la red incluye dropout, y foo
introduce una "probabilidad de mantener" distinta de 1.0, obtendré valores diferentes, de modo que, por ejemplo, obtengo una pérdida o precisión diferente cada vez, por ejemplo, tres cálculos de precisión inmediatamente sucesivos con
print(sess.run(accuracy, feed_dict=foo))
print(sess.run(accuracy, feed_dict=foo))
print(sess.run(accuracy, feed_dict=foo))
podría dar algo como
75.808
75.646
75.770
Aunque son más o menos lo mismo, no son exactamente iguales, presumiblemente porque cada vez que evalúo, la red elimina diferentes nodos. Una consecuencia de esto debe ser que nunca veo el costo realmente encontrado en el entrenamiento.
¿Cómo registro o visualizo el costo (u otros valores de resumen calculados usando la red) realmente utilizado en el entrenamiento de una red neuronal TensorFlow con abandono?
¿Y dónde está el problema? Debería obtener tres valores diferentes si llama tres veces a una red estocástica. Cuando está registrando sus pérdidas de la red, está registrando las que realmente se utilizan durante el entrenamiento. Básicamente, puede leer el valor de su gráfico calculado, como:
for i in range(100):
batch_xs, batch_ys = mnist.train.next_batch(100)
cross_entropy = -tf.reduce_sum(y_ * tf.log(y))
_, loss_val = sess.run([train_step, cross_entropy],
feed_dict={x: batch_xs, y_: batch_ys})
print ''loss = '' + loss_val
que imprimirá la pérdida que se calculó durante el paso de entrenamiento (no se calculará dos veces, por lo que la máscara de salida de salida no se volverá a muestrear).
Si, por el contrario, desea ver "cuál sería la precisión en el conjunto de trenes si dejo de aprender ahora", necesita un gráfico de evaluación https://www.tensorflow.org/versions/r0.8/tutorials/mnist/tf/index. html # evaluate-the-model , que le informará a su red, que es hora de cambiar las unidades de abandono de los resultados estocásticos, de escalado / promediado.