`tf.data.Dataset.take()` 是否返回随机样本?

Tfo*_*vid 6 tensorflow

不同的调用tf.data.Dataset.take()从给定的数据集中返回不同的批次。这些样本是随机选择的还是有其他机制在起作用?

更令人困惑的是,文档没有提及采样的随机性

小智 13

最有可能的是,您可能正在使用data.shuffle()before tf.data.Dataset.take()

注释 out 应该使迭代器按预期运行:每次迭代器运行都反复获取相同的结果。

-- 或者如果你使用了一个自动洗牌的 api,而不需要像这样询问image_dataset_from_directory

shuffle: Whether to shuffle the data. Default: True. 
If set to False, sorts the data in alphanumeric order.
Run Code Online (Sandbox Code Playgroud)

您必须shuffle=False在创建数据集时显式设置

  • 我使用的代码来自[this](https://www.tensorflow.org/tutorials/load_data/csv)笔记本。事实证明,“make_csv_dataset()”默认情况下会进行混洗,从而使其有些不透明,因此在调用“take()”时返回随机批次。 (4认同)