处理大量培训数据

时间:2016-05-25 13:45:46

标签: tensorflow

我写信是为了询问如何将大型训练数据提供给张量流模型的原理。我的训练数据托管在csv文件中,基本上我使用下面的代码在队列中加载数据。

filename_queue = tf.train.string_input_producer([...])
reader = tf.TextLineReader()
_, line = reader.read(filename_queue)

line = tf.decode_csv(line, record_defaults=default)
label_batch, feature_batch = tf.train.shuffle_batch([label, feature], batch_size=batch_size, capacity=512, min_after_dequeue=256,  num_threads=8)

我的实验如下:

  • Exp#1:140G大小的单个文件。我的程序被杀了#34;猜猜OOM。
  • Exp#2:将大文件拆分为340个小文件。程序工作,但GPU几乎使用=> 0%,从批处理队列中的张量板项目变小。

我认为在#2中将数据加载到队列中是瓶颈,但我已经使用8个线程来加载数据。虽然训练数据中的样本与224 * 224 * 3的功能一样大,但我认为只需将其中的512个加载到16GB内存中就应该这么慢。

任何人都可以点亮它吗?接下来我该怎么办?将csv转换为二进制?

1 个答案:

答案 0 :(得分:2)

您确实可以将文件转换为tensorflow二进制格式(.tfrecords)并在线加载数据。请参阅this tutorial以了解如何查看。