根据tensorflow中第一个队列的结果创建另一个队列

时间:2018-06-13 15:44:21

标签: tensorflow queue

这是我的目录树(例如一个文件):

A / 11.JPG

B / m11.jpg

我想获取文件的名称和值(即11),然后是b中相应文件的值(即m11.jpg)。首先,使用 match_filenames_once 创建一个队列,并使用一些操作来获取名称。然后创建第二个队列,其中包含由第一步结果形成的列表。然而,程序似乎陷入无限循环。以下是我的代码。

filename_queue=tf.train.string_input_producer(tf.train.match_filenames_once("./a/*.jpg"))
image_reader = tf.WholeFileReader()
im1_name, im1_raw = image_reader.read(filename_queue)
im1 = tf.image.decode_jpeg(im1_raw)
im1_name = tf.substr([im1_name], pos=2, len=2)
with tf.Session() as sess:
    tf.global_variables_initializer().run()
    tf.local_variables_initializer().run()
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord)
    im1_name_val, im1_val = sess.run([im1_name, im1])
    im1_name_val = im1_name_val.decode('utf-8')
    filename_queue2 = tf.train.string_input_producer(['./b/m' + im1_name_val + '.jpg'])
    image_reader2 = tf.WholeFileReader()
    im2_name, im2_raw = image_reader2.read(filename_queue2)
    im2 = tf.image.decode_jpeg(im2_raw)
    im2_val = sess.run([im2])
    coord.request_stop()
    coord.join(threads)

我应该创建2个会话来完成这项工作吗?我不知道。是否有更好(或更快)的方法呢?

0 个答案:

没有答案