learning - tensorboard keras
¿Cómo utilizar el proyector incrustador tensorboard? (4)
@Ehsan
Tu explicación es muy buena. La clave aquí es que cada Variable debe inicializarse antes de la llamada a saver.save (...).
@Todo el mundo
Además, la incorporación de tensorboard es simplemente visualizar instancias de la clase Variable guardada. No importa si son palabras o imágenes o cualquier otra cosa.
El documento oficial https://www.tensorflow.org/get_started/embedding_viz no señala que se trata de una visualización de la dirección de la matriz, lo que, en mi opinión, ha generado mucha confusión.
Quizás te preguntes qué significa visualizar una matriz. Una matriz puede interpretarse como una colección de puntos en un espacio.
Si tengo una matriz con forma (100, 200), puedo interpretarla como una colección de 100 puntos, donde cada punto tiene 200 dimensiones. En otras palabras, 100 puntos en un espacio de 200 dimensiones.
En el caso de word2vec, tenemos 100 palabras donde cada palabra se representa con un vector de 200 longitudes. La integración de tensorboard simplemente utiliza PCA o T-SNE para visualizar esta colección (matriz).
Por lo tanto, puede a través de cualquier matrices aleatorias. Si atraviesa una imagen con forma (1080, 1920), visualizará cada fila de esta imagen como si fuera un solo punto.
Dicho esto, puede visualizar la incorporación de cualquier instancia de clase Variable simplemente guardando luego saver = tf.train.Saver([a, _list, of, wanted, variables]) ...some code you may or may not have... saver.save(sess, os.path.join(LOG_DIR, ''filename.ckpt''))
Intentaré hacer un tutorial detallado más adelante.
¿Dónde puedo encontrar documentación sobre el proyector de incrustación incluido en Tensorboard? Here , hay algunas referencias a él, pero no hay un ejemplo / tutorial paso a paso sobre cómo usarlo.
Lamentablemente, no puedo encontrar una documentación más completa. A continuación colecciono todos los recursos relacionados:
- Instrucciones: this
- Google Research Blog: announcement y animation
- Documento: https://arxiv.org/pdf/1611.05469v1.pdf
- Fuente: https://github.com/tensorflow/embedding-projector-standalone
- tutorial y code TF Dev Summit 2017
- Problema #6322 tiene algunos punteros y ejemplos
PD: Gracias por subvotarme. Ahora puedo publicar todos los enlaces.
Parece que desea obtener la sección de Visualización con t-SNE ejecutándose en TensorBoard. Como ha descrito, la API de Tensorflow solo ha proporcionado los comandos esenciales en el this instrucciones.
He cargado mi solución de trabajo con el conjunto de datos MNIST en mi repositorio de GitHub .
Respuesta original de : ¿Ejemplo de incrustación de TensorBoard?
Que yo sepa, this es la única documentación sobre la incorporación de la visualización en el sitio web TensorFlow. Aunque el fragmento de código podría no ser muy instructivo para los usuarios primerizos, aquí hay un ejemplo de uso:
import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
LOG_DIR = ''logs''
mnist = input_data.read_data_sets(''MNIST_data'')
images = tf.Variable(mnist.test.images, name=''images'')
with tf.Session() as sess:
saver = tf.train.Saver([images])
sess.run(images.initializer)
saver.save(sess, os.path.join(LOG_DIR, ''images.ckpt''))
Aquí primero creamos una variable TensoFlow ( images
) y luego la tf.train.Saver
usando tf.train.Saver
. Después de ejecutar el código, podemos iniciar TensorBoard emitiendo el tensorboard --logdir=logs
y abriendo localhost:6006
en un navegador.
Sin embargo, esta visualización no es muy útil porque no vemos clases diferentes a las que pertenece cada punto de datos. Para distinguir cada clase de otra, debe proporcionar algunos metadatos:
import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.contrib.tensorboard.plugins import projector
LOG_DIR = ''logs''
metadata = os.path.join(LOG_DIR, ''metadata.tsv'')
mnist = input_data.read_data_sets(''MNIST_data'')
images = tf.Variable(mnist.test.images, name=''images'')
with open(metadata, ''w'') as metadata_file:
for row in mnist.test.labels:
metadata_file.write(''%d/n'' % row)
with tf.Session() as sess:
saver = tf.train.Saver([images])
sess.run(images.initializer)
saver.save(sess, os.path.join(LOG_DIR, ''images.ckpt''))
config = projector.ProjectorConfig()
# One can add multiple embeddings.
embedding = config.embeddings.add()
embedding.tensor_name = images.name
# Link this tensor to its metadata file (e.g. labels).
embedding.metadata_path = metadata
# Saves a config file that TensorBoard will read during startup.
projector.visualize_embeddings(tf.summary.FileWriter(LOG_DIR), config)
Lo que nos da: