histogram - open - tensorboard see graph
Significado de Histograma en Tensorboard (4)
Roufan,
La gráfica del histograma le permite trazar las variables de su gráfico.
w1 = tf.Variable(tf.zeros([1]),name="a",trainable=True)
tf.histogram_summary("firstLayerWeight",w1)
Para el ejemplo anterior, el eje vertical tendría las unidades de mi variable w1. El eje horizontal tendría unidades del paso que creo que se captura aquí:
summary_str = sess.run(summary_op, feed_dict=feed_dict)
summary_writer.add_summary(summary_str, **step**)
Puede ser útil ver esto sobre cómo hacer resúmenes para el tensorboard.
Don
Estoy trabajando en Google Tensorboard, y me siento confundido sobre el significado de Histogram Plot. Leí el tutorial, pero no me parece claro. Realmente aprecio que alguien pueda ayudarme a descubrir el significado de cada eje para la gráfica del histograma del Tensorboard.
Histograma de muestra de TensorBoard
Me encontré con esta pregunta antes, mientras buscaba información sobre cómo interpretar las gráficas del histograma en TensorBoard. Para mí, la respuesta vino de los experimentos de trazar distribuciones conocidas. Entonces, la distribución normal convencional con mean = 0 y sigma = 1 se puede producir en TensorFlow con el siguiente código:
import tensorflow as tf
cwd = "/tmp/TF/test_logs"
W1 = tf.Variable(tf.random_normal([200, 10], stddev=1.0))
W2 = tf.Variable(tf.random_normal([200, 10], stddev=0.13))
w1_hist = tf.histogram_summary("weights-stdev 1.0", W1)
w2_hist = tf.histogram_summary("weights-stdev 0.13", W2)
summary_op = tf.merge_all_summaries()
init = tf.initialize_all_variables()
sess = tf.Session()
writer = tf.train.SummaryWriter(cwd)
sess.run(init)
for i in xrange(2):
writer.add_summary(sess.run(summary_op),i)
writer.flush()
writer.close()
sess.close()
Aquí se muestra el resultado: histograma de distribución normal con 1.0 desviación estándar . El eje horizontal representa los pasos de tiempo. La gráfica es una gráfica de contorno y tiene líneas de contorno en los valores del eje vertical de -1.5, -1.0, -0.5, 0.0, 0.5, 1.0 y 1.5.
Como el gráfico representa una distribución normal con mean = 0 y sigma = 1 (y recuerde que sigma significa desviación estándar), la línea de contorno en 0 representa el valor medio de las muestras.
El área entre las líneas de contorno en -0.5 y +0.5 representa el área bajo una curva de distribución normal capturada dentro de +/- 0.5 desviaciones estándar de la media, lo que sugiere que es 38.3% del muestreo.
El área entre las líneas de contorno en -1.0 y +1.0 representa el área bajo una curva de distribución normal capturada dentro de +/- 1.0 desviaciones estándar de la media, lo que sugiere que es 68.3% del muestreo.
El área entre las líneas de contorno en -1.5 y + 1-.5 representa el área bajo una curva de distribución normal capturada dentro de +/- 1.5 desviaciones estándar de la media, lo que sugiere que es 86.6% del muestreo.
La región más pálida se extiende un poco más allá de +/- 4.0 desviaciones estándar de la media, y solo alrededor de 60 por 1,000,000 de muestras estarán fuera de este rango.
Si bien Wikipedia tiene una explicación muy completa, puedes obtener los nuggets más relevantes aquí .
Los gráficos reales del histograma mostrarán varias cosas. Las regiones de trazado crecerán y disminuirán en ancho vertical a medida que la variación de los valores supervisados aumente o disminuya. Los gráficos también pueden desplazarse hacia arriba o hacia abajo a medida que aumenta o disminuye la media de los valores monitorizados.
(Puede haber notado que el código realmente produce un segundo histograma con una desviación estándar de 0.13. Lo hice para aclarar cualquier confusión entre las líneas de contorno de la trama y las marcas de eje vertical).
@marc_alain, eres una estrella por hacer un script tan simple para TB, que es difícil de encontrar.
Para agregar a lo que dijo los histogramas que muestran 1,2,3 sigma de la distribución de los pesos. que es equivalente a los percentiles 68 °, 95 ° y 98 °. Entonces, piense que si su modelo tiene 784 pesos, el histograma muestra cómo los valores de esos pesos cambian con el entrenamiento.
Estos histogramas probablemente no son tan interesantes para los modelos poco profundos, se podría imaginar que con redes profundas, los pesos en capas altas pueden tardar un tiempo en crecer debido a la saturación de la función logística. Por supuesto, estoy simplemente repitiendo el loro de Glorot y Bengio , en el cual estudian la distribución de los pesos a través del entrenamiento y muestran cómo la función logística está saturada para las capas superiores durante bastante tiempo.
Cada línea en el gráfico representa un percentil en la distribución sobre los datos: por ejemplo, la línea inferior muestra cómo el valor mínimo ha cambiado con el tiempo, y la línea en el medio muestra cómo ha cambiado la mediana. Leyendo de arriba a abajo, las líneas tienen el siguiente significado: [maximum, 93%, 84%, 69%, 50%, 31%, 16%, 7%, minimum]
Estos percentiles también se pueden ver como límites de desviación estándar en una distribución normal: [maximum, μ+1.5σ, μ+σ, μ+0.5σ, μ, μ-0.5σ, μ-σ, μ-1.5σ, minimum]
de modo que las regiones de color, leídas de adentro hacia afuera, tengan anchuras [σ, 2σ, 3σ]
respectivamente.