我正在努力使用tf.data.Dataset进行长时间的培训,并且开始怀疑读取CSV文件是否可能成为瓶颈。 tensorflow.data.experimental.CsvDataset一遍又一遍地从文件中读取吗?
我考虑尝试首先导入整个数据集并将其放入numpy数组中,然后创建一个新的TF Dataset from tensors。但是,这样的更改将需要时间,并且如果SO可以事先告诉我这没有任何影响,我不想浪费时间。
答案 0 :(得分:0)
我不确定为什么CsvDataset训练时间这么长,但是修改代码以首先将数据导入numpy数组,然后使用tf.data.Dataset.from_tensor_slices
进行导入,使得有关 10-快100倍。可能与此相关的另一变化是,数据集不再在整个处理过程中嵌套。在旧版本中,每个批次都是列张量的元组,而在新版本中,每个批次只是一个张量。 (可以通过删除为嵌套结构定制的变换来进一步提高速度,这些变换现在仅应用于一个张量。)