【问题标题】:Get samples rom TF dataset从 TF 数据集获取样本
【发布时间】:2021-08-25 10:06:26
【问题描述】:

我有一个 TF 数据集

train_ds = train_ds.cache().shuffle(1000).prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

由于我的数据量很大(100,000),我只想选择一个数据子集进行训练 所以我需要从旧数据集创建一个新的 TF 数据集

【问题讨论】:

    标签: python-3.x tensorflow keras deep-learning dataset


    【解决方案1】:

    你可以使用tf.data.Dataset.shard

    创建一个仅包含该数据集的 1/num_shards 的数据集。

    分片是确定性的。 A.shard(n, i) 生成的数据集将 包含 A 中所有索引 mod n = i 的元素。

    A = tf.data.Dataset.range(10)
    B = A.shard(num_shards=3, index=0)
    

    如果您想要原始train_ds 的 1/10: new_ds = train_ds.shard(num_shards=10, index=0)

    【讨论】:

    • B 将是 tf 数据集类型,与我们批量大小的形状相同?
    • 是的,它应该具有相同的形状,唯一的例外是数据集中的样本数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2011-02-24
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多