答案 0 :(得分:0)
您应该使用tensorflow 1.4中引入的数据集输入管道:
https://www.tensorflow.org/programmers_guide/datasets#consuming_text_data
以下是开发人员指南中的示例(虽然您希望阅读该指南,但写得非常好):
filenames = ["/var/data/file1.txt", "/var/data/file2.txt"]
dataset = tf.data.Dataset.from_tensor_slices(filenames)
# Use `Dataset.flat_map()` to transform each file as a separate nested dataset,
# and then concatenate their contents sequentially into a single "flat" dataset.
# * Skip the first line (header row).
# * Filter out lines beginning with "#" (comments).
dataset = dataset.flat_map(
lambda filename: (
tf.data.TextLineDataset(filename)
.skip(1)
.filter(lambda line: tf.not_equal(tf.substr(line, 0, 1), "#"))))
数据集预处理管道有一些很好的优点。您需要的大多数功能(如阅读文本记录,改组,批处理等)都可以简化为单行。更重要的是,它会迫使您以良好的,模块化的,可测试的方式编写预处理管道。习惯API需要一点点,但是花费的时间很长。