Comment utiliser TensorBoard Embedding Projector? [fermé]
Où puis-je trouver de la documentation sur le projecteur encastré inclus dans Tensorboard? Ici, il y a quelques références à elle, mais il n'y a pas d'exemple pas à pas/tutoriel sur la façon de l'utiliser.
4 réponses
autant que je sache est la seule documentation sur l'intégration de la visualisation sur le site Web TensorFlow. Bien que le code snippet ne soit pas très instructif pour les premiers utilisateurs, voici donc un exemple d'usage:
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'))
ici nous créons d'abord une variable TensoFlow (images
) et ensuite le sauvegarder en utilisant tf.train.Saver
. Après avoir exécuté le code, nous pouvons lancer TensorBoard en émettant tensorboard --logdir=logs
commande et d'ouverture localhost:6006
dans un navigateur.
Toutefois, cette visualisation n'est pas très utile car nous ne voyons pas de classes différentes auxquelles chaque point de données appartient. Afin de distinguer chaque classe d'une autre, on devrait fournir certaines métadonnées:
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)
ce Qui nous donne:
malheureusement, je ne trouve pas de documentation plus complète. Ci-dessous je recueille toutes les ressources connexes:
- How - to:https://www.tensorflow.org/how_tos/embedding_viz/
- Google Recherche Blog: annonce et animation
- papier:https://arxiv.org/pdf/1611.05469v1.pdf
- Source : https://github.com/tensorflow/embedding-projector-standalone
- 2017 TF Dev Summit tutoriel et code
- Problème n ° 6322 a quelques conseils et exemples
PS: Merci pour upvoting moi. Maintenant je peux poster tous les liens.
il semble que vous voulez obtenir la section de visualisation avec t-SNE fonctionnant sur TensorBoard. Comme vous l'avez décrit, L'API de Tensorflow n'a fourni que les commandes essentielles dans le guide.
j'ai téléchargé ma solution de travail avec l'ensemble de données MNIST à mon dépôt GitHub.
Origine Stackoverflow réponse: TensorBoard Incorporation Exemple?
@Ehsan
Votre explication est très bonne. La clé ici est que chaque Variable doit être initialisée avant veille.enregistrer.(..) appeler.
@tout le monde
En outre, TensorBoard embedding est simplement des instances de visualisation de classe de Variable sauvée. Il ne se soucie pas de savoir si ce sont des mots ou des images ou quoi que ce soit d'autre.
La doc officielle https://www.tensorflow.org/get_started/embedding_viz ne pas dire que c'est une direction la visualisation de la matrice, qui, à mon avis, a introduit beaucoup de confusion.
peut-être vous demandez-vous ce que cela signifie de visualiser une matrice. Une matrice peut être interprété comme un ensemble de points dans un espace.
si j'ai une matrice avec forme (100, 200), je peux l'interpréter comme une collection de 100 points, où chaque point A 200 Dimensions. En d'autres termes, 100 points dans un espace de 200 Dimensions.
dans le cas de word2vec, nous avons 100 mots où chaque mot est représenté par un vecteur de 200 longueurs. TensorBoard embedding utilise simplement PCA ou T-SNE pour visualiser cette collection(matrix).
par conséquent, vous pouvez passer par toutes les matrices aléatoires. Si vous utilisez une image avec forme (1080, 1920), elle visualisera chaque ligne de cette image comme s'il s'agissait d'un point unique.
cela dit, Vous pouvez visualiser l'intégration de n'importe quelles instances de classe variables en enregistrant simplement
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'))
je vais essayer de faire un tutoriel détaillé tard.