从 tf.data.Dataset 应用过滤器后获取数据集的大小
get the size of dataset after applying a filter from tf.data.Dataset
我想知道如何在应用过滤器后获取数据集的大小或长度。使用 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
我的数据集包含图像及其标签,这只是一个说明性示例
查看文档发现基数为-2 表明Tensorflow 无法确定数据集的基数。您可以在 here 中找到它。对于你的例子,你可以做
dataset = dataset.as_numpy_iterator()
dataset = list(dataset)
print(len(dataset))
我想知道如何在应用过滤器后获取数据集的大小或长度。使用 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
我的数据集包含图像及其标签,这只是一个说明性示例
查看文档发现基数为-2 表明Tensorflow 无法确定数据集的基数。您可以在 here 中找到它。对于你的例子,你可以做
dataset = dataset.as_numpy_iterator()
dataset = list(dataset)
print(len(dataset))