You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Keras数据集直接统计各类别图像数量?

直接从Keras Image Dataset统计类别图像数量

要实现直接从train_ds统计每个类别的图像数量,核心是把数据集返回的整数标签映射到class_names对应的类别名称,具体步骤如下:

方法一:使用collections.Counter遍历数据集

import tensorflow as tf
from collections import Counter

# 提取所有批次的标签
all_labels = []
for _, labels in train_ds:
    all_labels.extend(labels.numpy())

# 统计每个标签的出现次数
label_counts = Counter(all_labels)

# 映射标签到类别名称
class_image_counts = {train_ds.class_names[label]: count for label, count in label_counts.items()}

# 输出结果
for cls, cnt in class_image_counts.items():
    print(f"{cls}: {cnt} 张图片")

方法二:使用Numpy高效统计(适合大数据集)

import numpy as np

# 合并所有批次的标签为一个Numpy数组
all_labels = np.concatenate([labels.numpy() for _, labels in train_ds])

# 统计每个标签的数量(bincount仅适用于非负整数标签)
label_counts = np.bincount(all_labels)

# 关联类别名称与计数
class_image_counts = dict(zip(train_ds.class_names, label_counts))

# 查看结果
print(class_image_counts)

关键说明

  • train_ds返回的labels是整数张量,每个整数对应train_ds.class_names列表中的索引(比如标签0对应class_names[0]),所以只需要将统计后的标签计数与class_names做映射即可得到类别名称对应的数量。
  • 两种方法都不需要重新读取目录文件,完全基于已加载的Keras数据集操作。

内容的提问来源于stack exchange,提问作者Imran Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 00:10:35