当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.data.experimental.RandomDataset.sample_from_datasets用法及代码示例


用法

@staticmethod
sample_from_datasets(
    datasets, weights=None, seed=None, stop_on_empty_dataset=False
)

参数

  • datasets 具有兼容结构的tf.data.Dataset 对象的非空列表。
  • weights (可选。)len(datasets) 浮点值的列表或张量,其中 weights[i] 表示从 datasets[i]tf.data.Dataset 对象中采样的概率,其中每个元素都是这样的列表。默认为跨 datasets 的均匀分布。
  • seed (可选。)tf.int64 标量 tf.Tensor ,表示将用于创建分布的随机种子。有关行为,请参阅tf.random.set_seed
  • stop_on_empty_dataset 如果 True ,如果遇到空数据集,采样将停止。如果 False ,它会跳过空数据集。建议将其设置为 True 。否则,样本的分布会按照用户的意图开始,但可能会随着输入数据集变空而改变。这可能很难检测到,因为数据集开始看起来是正确的。默认为 False 以实现向后兼容性。

返回

  • 根据weights(如果提供),随机交织来自datasets的元素的数据集,否则以统一概率。

抛出

  • TypeError 如果 datasetsweights 参数的类型错误。
  • ValueError
    • 如果datasets 为空,或者
    • 如果指定了 weights 并且与 datasets 的长度不匹配。

datasets 的数据集中随机抽取元素。

通过将 datasets 的元素与从数据集 i 中选取元素的概率 weight[i] 交错来创建数据集。取样无需更换。例如,假设我们有 2 个数据集:

dataset1 = tf.data.Dataset.range(0, 3)
dataset2 = tf.data.Dataset.range(100, 103)

假设我们从这两个数据集中使用以下权重进行采样:

sample_dataset = tf.data.Dataset.sample_from_datasets(
    [dataset1, dataset2], weights=[0.5, 0.5])

sample_dataset 中元素的一种可能结果是:

print(list(sample_dataset.as_numpy_iterator()))
# [100, 0, 1, 101, 2, 102]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.data.experimental.RandomDataset.sample_from_datasets。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。