当前位置:  开发笔记 > 编程语言 > 正文

如何在Tensorflow中一一读取文件?

如何解决《如何在Tensorflow中一一读取文件?》经验,为你挑选了1个好方法。

Tensorflow中有读取文件的功能,但是这些功能接受文件名队列。

这意味着,当我从文件本身读取文件时,我有义务正确推断标签。

不幸的是,我在内存中有一个元组列表,其中每个元组都由文件名和标签组成。即标签不在文件中,而是在内存中。

是否可以以某种方式或以其他方式创建两个同步队列以从不同来源获取数据和标签?

更新

我写了这样的东西,但是失败了

数据= [[os.path.join(corpus_dir,文件名),标签](数据中的(文件名,标签)]

def read_my_file():

    records = tf.train.input_producer(data)
    record = records.dequeue()
    filename = record[0]
    filenames = tf.FIFOQueue(1, tf.string)
    filenames.enqueue(filename)
    label = record[1]
    reader = tf.WholeFileReader()
    key, raw = reader.read(filenames)
    image = tf.image.decode_png(raw)
    return image, label


image, label = read_my_file()

init_op = tf.initialize_all_variables()
with tf.Session() as sess:
    sess.run(init_op)

    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord)

    for i in range(10):
        image1, label1 = sess.run(image, label)
        print(label1)

data是Python内存中的元组的列表,并且filenames是我组织来供稿文件读取器的队列。

看起来很糟糕,无法正常工作:

...test05.py", line 37, in 
    image1, label1 = sess.run(image, label)
  File "C:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 769, in run
    run_metadata_ptr)
  File "C:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 915, in _run
    if feed_dict:
  File "C:\Python35\lib\site-packages\tensorflow\python\framework\ops.py", line 525, in __bool__
    raise TypeError("Using a `tf.Tensor` as a Python `bool` is not allowed. "
TypeError: Using a `tf.Tensor` as a Python `bool` is not allowed. Use `if t is not None:` instead of `if t:` to test if a tensor is defined, and use TensorFlow ops such as tf.cond to execute subgraphs conditioned on the value of a tensor.

如您所见,我无处使用条件。



1> mrry..:

由于您正在使用tf.WholeFileReader,因此可以通过将其替换为简单得多的tf.read_file()op 来避免同步多个队列的问题,如下所示:

def read_my_file():
    records = tf.train.input_producer(data)
    filename, label = records.dequeue()
    raw = tf.read_file(filename)
    image = tf.image.decode_png(raw)
    return image, label

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有