web-dev-qa-db-ja.com

テンソルボードのイベント概要から画像を抽出して保存する方法は?

テンソルフローイベントファイルが与えられた場合、特定のタグに対応する画像を抽出し、一般的な形式でディスクに保存するにはどうすればよいですか? .png

11
eqzx

このように画像を抽出できます。出力形式は、概要での画像のエンコード方法に依存する可能性があるため、ディスクへの書き込み結果は_.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  
_

そして、呼び出しの例は次のようになります。

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

これは、イベントファイルが完全に書き込まれていることを前提としていることに注意してください。そうでない場合は、おそらくいくつかのエラー処理が必要です。

14
eqzx