web-dev-qa-db-fra.com

Comment extraire et enregistrer des images du résumé des événements tensorboard?

Étant donné un fichier d'événements tensorflow, comment puis-je extraire des images correspondant à une balise spécifique, puis les enregistrer sur le disque dans un format commun, par exemple .png?

11
eqzx

Vous pouvez extraire les images comme ça. Le format de sortie peut dépendre de la façon dont l'image est codée dans le résumé, de sorte que l'écriture résultante sur le disque devra peut-être utiliser un autre format que .png

import os
import scipy.misc
import tensorflow as tf

def save_images_from_event(fn, tag, output_dir='./'):
    assert(os.path.isdir(output_dir))

    image_str = tf.placeholder(tf.string)
    im_tf = tf.image.decode_image(image_str)

    sess = tf.InteractiveSession()
    with sess.as_default():
        count = 0
        for e in tf.train.summary_iterator(fn):
            for v in e.summary.value:
                if v.tag == tag:
                    im = im_tf.eval({image_str: v.image.encoded_image_string})
                    output_fn = os.path.realpath('{}/image_{:05d}.png'.format(output_dir, count))
                    print("Saving '{}'".format(output_fn))
                    scipy.misc.imsave(output_fn, im)
                    count += 1  

Et puis un exemple d'appel peut ressembler à:

save_images_from_event('path/to/event/file', 'tag0')

Notez que cela suppose que le fichier d'événements est entièrement écrit - dans le cas contraire, une gestion des erreurs est probablement nécessaire.

14
eqzx