25 votos

¿Cómo se interpretan los histogramas dados por TensorFlow en TensorBoard?

Hace poco estuve corriendo y aprendiendo flujo tensorial y me salieron unos histogramas que no supe interpretar. Normalmente pienso en la altura de las barras como la frecuencia (o frecuencia relativa/cuentas). Sin embargo, el hecho de que no hay barras como en un histograma habitual y el hecho de que las cosas están sombreadas me confunde. también parece que hay muchas líneas / alturas a la vez?

¿Alguien sabe cómo interpretar los siguientes gráficos (y tal vez proporcionar un buen consejo que puede ayudar en general a la lectura de histogramas en tensorflow):

enter image description here

tal vez algunas otras cosas que son interesantes para discutir es, si las variables originales eran vectores o matrices o tensores, entonces ¿qué es tensorflow mostrando de hecho, como un histograma para cada coordenada? Además, tal vez hacer referencia a cómo obtener esta información para que la gente autosuficiente sería bueno porque he tenido algunas dificultades para encontrar cosas útiles en los documentos en este momento. Tal vez algunos tutoriales ejemplo, etc? Tal vez algunos consejos sobre la manipulación de ellos sería bueno también.


Como referencia, aquí un extracto del código que dio esto:

(X_train, Y_train, X_cv, Y_cv, X_test, Y_test) = data_lib.get_data_from_file(file_name='./f_1d_cos_no_noise_data.npz')
(N_train,D) = X_train.shape
D1 = 24
(N_test,D_out) = Y_test.shape
W1 = tf.Variable( tf.truncated_normal([D,D1], mean=0.0, stddev=std), name='W1') # (D x D1)
S1 = tf.Variable( tf.constant(100.0, shape=[]), name='S1') # (1 x 1)
C1 = tf.Variable( tf.truncated_normal([D1,1], mean=0.0, stddev=0.1), name='C1' ) # (D1 x 1)
W1_hist = tf.histogram_summary("W1", W1)
S1_scalar_summary = tf.scalar_summary("S1", S1)
C1_hist = tf.histogram_summary("C1", C1)

26voto

Shreyans Puntos 24

Actualmente, el nombre "histograma" es un término equivocado. Puede encontrar pruebas de ello en el LÉAME . El significado de la interfaz del histograma podría cambiar algún día como dijeron allí. Sin embargo, esto es lo que significa actualmente.

Los gráficos de tu pregunta mezclan diferentes ejecuciones de TensorFlow. En su lugar, mira los siguientes gráficos que muestran solo una ejecución:

enter image description here

Lo primero que me gustaría decir es que las propias curvas representan percentiles . Tomaré prestada la foto de aquí :

enter image description here

lo que significa que la curva etiquetada 93% es el percentil 93, lo que significa que el 93% de las observaciones estaban por debajo del valor ~0.130 en el paso de tiempo 1.00k. Así que el gráfico da 3 cosas de información, el porcentaje de observaciones por debajo de un cierto valor de acuerdo con algunos piensan curva en cada paso de tiempo de la computación de la formación de la red neuronal (al menos en este caso es lo que significan los pasos). Esto te da una idea de la distribución de valores de tu red.

También están los valores mínimo y máximo para hacerse una idea del rango de valores durante el entrenamiento.

Así que el eje y te dice el valor que te interesa y la curva te dice el percentil y el eje x en el paso. Así que si usted tiene:

$$ (x,f_i(x) = y)$$

significa que en el paso x según la curva de percentiles $i$ hay menos de $i$ % de los valores por debajo del valor y.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X