You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tf.data.Dataset.from_tensor_slices()加载数据是否会保留样本顺序?

顺序保留情况分两种场景说明

  • 仅运行你给出的代码时
    tf.data.Dataset.from_tensor_slices() 本身会严格保留输入序列的顺序,你输入的文件名列表是['1.tfrecord', '2.tfrecord', '3.tfrecord'],这一步生成的数据集存储的是文件名字符串,输出顺序和你输入的列表完全一致,不会乱序。

  • 加载文件内的样本时
    最终样本的顺序取决于你后续的数据集处理逻辑:

    • 如果你使用map串行读取每个TFRecord文件的内容,不添加其他乱序操作,样本顺序会完全保留:先输出1.tfrecord内的40个样本(按文件内部存储的顺序排列),再输出2.tfrecord的30个样本,最后输出3.tfrecord的70个样本。
    • 如果你使用interleave并行加载多个TFRecord文件,默认会交替输出不同文件的样本,不会保持「先输出完第一个文件所有样本再输出第二个」的排列顺序;如果需要在并行加载时仍保持原文件的先后输出逻辑,需要将interleave的cycle_length参数设置为1,关闭多文件并行读取。
    • 如果后续流程添加了shuffle这类随机打乱操作,样本顺序会被随机重排,不再保留原有顺序。

内容的提问来源于stack exchange,提问作者eng2019

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:15:04