我添加了代码来批量读取我的csv文件,我注意到它以一种糟糕的方式影响了我的损失。结果是这样的
所以方案1是我在我的csv中读取,将整个数组洗牌,然后每批次接收150个并经过3000次文件
在方案2中,我没有阅读完整文件,而是使用tensorflow网站上提出的方法。我更喜欢这种方法,因为我不必将大型csv文件读入我的内存。我的代码是这样的:
def input_pipeline(file, batch_size, num_epochs=None):
filename_queue = tf.train.string_input_producer([file], num_epochs=num_epochs, shuffle=True)
example, label = read_from_csv(filename_queue)
min_after_dequeue = 1000
capacity = min_after_dequeue + 3 * batch_size
example_batch, label_batch = tf.train.shuffle_batch(
[example, label], batch_size=batch_size, capacity=capacity,
min_after_dequeue=min_after_dequeue,allow_smaller_final_batch=True)
return example_batch, label_batch
时期数和批量大小相同。
除了从文件中读取数据的方式外,为什么使用相同的配置时结果如此不同?
修改
另一件事。张量流批处理方法慢了约7分钟(至少当我使用小csv时)。这是正常的吗?