gpt4 book ai didi

tensorflow - 如何通过 tf.image_summary 查看多张图片

转载 作者:行者123 更新时间:2023-12-04 07:51:53 24 4
gpt4 key购买 nike

问题 - TensorBoard 上只显示一张图片

受此启发
How can I visualize the weights(variables) in cnn in Tensorflow?

这是代码:

# --- image reader ---
# - rsq: random shuffle queue with [fn l] pairs
def img_reader_jpg(rsq):
fn, label = rsq.dequeue()
img_b = tf.read_file(fn)
img_u = tf.image.decode_jpeg(img_b, channels=3)
img_f = tf.cast(img_u, tf.float32)
img_4 = tf.expand_dims(img_f,0)
return img_4, label


# filenames and labels are pre-loaded
fv = tf.constant(fnames)
lv = tf.constant(ohl)

rsq = tf.RandomShuffleQueue(len(fnames), 0, [tf.string, tf.float32])
do_enq = rsq.enqueue_many([fv, lv])

# reading_op
image, label = img_reader_jpg(rsq)

# test: some op
im_t = tf.placeholder(tf.float32, shape=[None,30,30,3], name='img_tensor')
lab_t = tf.placeholder(tf.float32, shape=[None,2], name='lab_tensor')
some_op = tf.add(im_t,im_t)
ims_op = tf.image_summary("img", im_t)

# service ops
init_op = tf.initialize_all_variables()

# run it
with tf.Session() as sess:

summary_writer = tf.train.SummaryWriter(summ_dir, graph_def=sess.graph_def)
print 'log at:', summ_dir

sess.run(init_op)
sess.run(do_enq)
print "rsq.size:", rsq.size().eval()

for i in xrange(5):
print "\ni:",i

img_i, lab_i = sess.run([image, label]) # read image - right?
print "I:", img_i.shape , " L:", lab_i

feed_dict = {
im_t: img_i
}

img2 = sess.run([some_op], feed_dict = feed_dict)

# now summary part
imss = sess.run(ims_op, feed_dict = feed_dict)
#print "imss",imss
summary_writer.add_summary(imss,i)

print "rsq.size:", rsq.size().eval()
summary_writer.close()

print 'ok'

这是输出:

log at: /mnt/code/test_00/log/2016-01-09 17:10:37
rsq.size: 1225

i: 0
I: (1, 30, 30, 3) L: [ 1. 0.]

i: 1
I: (1, 30, 30, 3) L: [ 1. 0.]

i: 2
I: (1, 30, 30, 3) L: [ 0. 1.]

i: 3
I: (1, 30, 30, 3) L: [ 0. 1.]

i: 4
I: (1, 30, 30, 3) L: [ 0. 1.]
rsq.size: 1220
ok

看起来不错
  • 5 [图像标签] 对已交付
  • 如果我取消注释 打印“imss”,imss 我可以看到 5 个不同的缓冲区,每个缓冲区都有自己的 png 图像
  • op 图在 TB 中看起来不错

  • 但是,TB 中只有一张图像。我怀疑我错过了一些关于 TF 工作方式的重要信息——即是什么导致了图形执行时的情况。

    第二个问题:我需要做什么才能看到结果,即 img2 = img+img 在结核病?

    最佳答案

    你是对的,你只会看到一张图片。您在每个 for 循环中调用图像摘要操作一次,并且每次调用它时,您都向它传递一个图像。

    要查看您想查看的所有图像,您可以做的是将这些图像编译成一个张量。如果我们引用 TensorFlow API(链接总是在变化,所以找到最新的)

    tf.image_summary(tag, tensor, max_images=3, collections=None, name=None)



    从 TF 1.0.0 开始,它是这样的:

    tf.summary.image(name, tensor, max_outputs=3, collections=None)



    放入“多图像张量”,将 max_images 设置为您拥有的图像数量,您应该能够在 TensorBoard 中看到所有图像。

    如果还有问题,请告诉我。

    关于tensorflow - 如何通过 tf.image_summary 查看多张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34696845/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com