请问下机器学习PAI ParquetDataset做shuffle应该如何构建最佳实践呢?我理解的是ParquetDataset出的dataset已经是batch过的,再设置shuffle_buffer=k应该是缓存了k*batch_size条样本,出来的结果也是batch 之间的shuffle,不同的batch内部并不会有样本的shuffle对吗?
对的,是batch级别的shuffle,每个batch内部的样本不做shuffle。Parquet是列存,样本级别shuffle的内存拷贝开销会比较大,此回答整理自钉群“DeepRec用户群”
是的,你的理解是正确的。在PAI中使用ParquetDataset时,由于ParquetDataset已经将数据按批次处理,因此再进行shuffle操作时,是在批次之间进行shuffle,而不是在每个批次内部进行shuffle。这样可以保证每个批次内部的样本顺序不变,但不同批次之间的样本顺序会发生变化。
如果你希望在每个批次内部也进行shuffle,你可能需要使用其他的DataSet类型,例如TFRecordDataset或者CSVDataset等,这些数据集类型可以在每个批次内部进行shuffle。
至于shuffle_buffer的设置,它决定了每次shuffle操作的样本数量。较大的shuffle_buffer可以提高shuffle的效果,但也可能会增加计算和存储的开销。因此,你需要根据实际的业务需求和计算资源来进行合理的设置。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。