tutorial reconocimiento learning imagenes imagen español ejemplos clasificador basicos machine-learning neural-network tensorflow

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.