设计数据读入pipeline最佳流水线做法是:
1,使用prefetch转换可将提供和使用方的工作重叠,特别建议将prefetch(n)(其中n是单步训练使用的元素/批次数)添加到输入流水线的末尾,以便将在CPU上执行的转换在加速器上执行的训练重叠
2,通过设置num_parallel_calls参数并行处理map变换,建议直接设置为CPU核心的数量
3,如果使用batch转换将预处理元素组合到一个批次中,建议使用map_and_batch混合转换,如果在使用批次比较大的时候
4,如果您要处理远程存储的数据并需要反序列化,建议使用parallel_interleave转换来重叠从不同文件读取数据的操作
5,如果预处理会增加数据大小,建议首先使用interleave,prefetch和shuflle来减少内存使用
6,建议在使用repeat转换之前,用shuffle转换,最好使用shuffle_and_repeat混合转换
转自:https://www.tensorflow.org/guide/performance/datasets?hl=zh-cn#pipelining