[从tf.data.Dataset应用过滤器后获取数据集的大小

问题描述 投票:0回答:1

我想知道在应用过滤器后如何获取数据集的大小或len。使用tf.data.experimental.cardinality给出-2,这不是我想要的!我想知道我的数据集中有多少个经过过滤的样本,以便能够使用take()和skip()将其拆分为训练和验证数据集。

示例:

    dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
    dataset = dataset.filter(lambda x: x < 4)
    size = tf.data.experimental.cardinality(dataset).numpy()
    #size here is equal to -2 but I want to get the real size which is 3

我的数据集包含图像及其标签,这只是一个说明性示例

python tensorflow filter size take
1个回答
0
投票

查看文档显示基数为-2表示Tensorflow无法确定数据集的基数。您可以在here中找到它。例如,您可以执行

dataset = dataset.as_numpy_iterator()
dataset = list(dataset)
print(len(dataset))
© www.soinside.com 2019 - 2024. All rights reserved.