计算 tensorflow.data.Datset 的元素最快的方法是什么?

What is the fastest method to count elements of a tensorflow.data.Datset?

有没有比

更快的方法来计算 tensorflow.data.Dataset 的所有元素
def count_elements(dataset: tf.data.Dataset):
    return dataset.reduce(0, lambda x, _ : x + 1).numpy()

"Faster" 意味着还要考虑内存使用,但是执行时间是最重要的。据我所知,没有内置方法。

简答"No"。

对于内存数据集,有:tf.data.experimental.cardinality(dataset),但是 tf.data.Dataset 本质上是延迟加载的,并且可以是无限的,所以不知道 [=11= 中有多少元素] 而不遍历它。

来源: