【问题标题】:How to get class distribution in Tensorflow Datasets?如何在 Tensorflow 数据集中获得类分布?
【发布时间】:2020-07-13 15:03:49
【问题描述】:
在使用 TensorFlow Datasets (tfds) 时是否可以检索类分布信息?如果我通过 with_info 我会得到 tfds.core.DatasetInfo 信息对象,其中包含有关数据集的一些信息(拆分、标签等)。
但是,我很好奇是否可以根据该对象中包含的内容确定确切的类别分布。
据我所知,如果不先迭代数据集,这是不可能的。只是想仔细检查这个假设并询问从数据集中提取此信息的最快/最佳方法是什么。
注意:就这个问题而言,我只考虑用于图像分类的数据集。
【问题讨论】:
标签:
python
tensorflow
keras
tensorflow-datasets
【解决方案1】:
我也找不到获取标签分布的方法。这是另一种选择:
import tensorflow_datasets as tfds
import numpy as np
ds = tfds.load('mnist', split='train', as_supervised=True)
vals = np.unique(np.fromiter(ds.map(lambda x, y: y), float), return_counts=True)
for val, count in zip(*vals):
print(int(val), count)
0 5923
1 6742
2 5958
3 6131
4 5842
5 5421
6 5918
7 6265
8 5851
9 5949