ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用 FiftyOne Dataset Zoo 加载 CIFAR-10 图像分类数据集

使用 FiftyOne Dataset Zoo 加载 CIFAR-10 图像分类数据集 使用 FiftyOne Dataset Zoo 加载 CIFAR-10 图像分类数据集【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyoneCIFAR-10 是计算机视觉领域最经典的图像分类基准数据集之一。本文基于 FiftyOne 开源仓库官方文档cifar10.rst与其数据集动物园Dataset Zoo源码实现系统讲解如何通过 FiftyOne 以 Python API 或 CLI 两种方式一键下载、加载并可视化 CIFAR-10同时深入解析 TF/Torch 双后端实现原理与load_zoo_dataset的核心参数。读完本文你将掌握在 FiftyOne 中标准化接入 CIFAR-10、进而进行数据浏览、筛选与模型评估的完整实战路径。CIFAR-10 数据集速览根据官方文档FiftyOne Dataset Zoo 中的 CIFAR-10 是 60,000 张 32×32 彩色图像的图像分类数据集共 10 个类别每个类别 6,000 张图像其中 50,000 张训练图像、10,000 张测试图像。数据集元信息如下属性值数据集名称Dataset namecifar10数据来源Dataset sourcehttps://www.cs.toronto.edu/~kriz/cifar.html数据集大小Dataset size132.40 MB标签Tagsimage, classification支持的分割Supported splitstrain, test文档同时明确加载该数据集必须安装 Torch 或 TensorFlow 后端之一这一点在加载前的环境准备阶段需要特别留意详见下文前置条件一节。双后端实现Torch 与 TF 的 ZooDataset 类文档列出该数据集在 Dataset Zoo 中对应两类ZooDataset实现CIFAR10DatasetTF 后端定义于 fiftyone/zoo/datasets/tf.py继承自TFDSDataset底层通过tensorflow_datasets包加载CIFAR10DatasetTorch 后端定义于 fiftyone/zoo/datasets/torch.py继承自TorchVisionDataset底层通过torchvision.datasets包加载。两个类声明了相同的数据集元属性name cifar10、tags (image, classification)、supported_splits (train, test)。从源码可以确认二者的实际下载与格式转换流程Torch 后端torch.py在_download_and_prepare中调用torchvision.datasets.CIFAR10(download_dir, traintrain, downloadTrue)下载原始数据再配合foud.ImageClassificationSampleParser解析样本最终由通用辅助函数_download_and_preparetorch.py通过FiftyOneImageClassificationDatasetExporter将数据格式化为 FiftyOne 原生图像分类数据集FiftyOneImageClassificationDataset并写入目标数据集目录TF 后端tf.py调用tfds.load(cifar10, splitsplit, data_dirdownload_dir, downloadTrue, with_infoTrue)通过info.features[label].names读取类别、info.splits[split].num_examples读取样本数再经_TFDSImageClassificationSampleParsertf.py将 TFDS 的image/label字段解析为 FiftyOne 样本。也就是说无论选用哪个后端最终都会归一化到 FiftyOne 统一的FiftyOneImageClassificationDataset格式保证后续数据操作与 App 可视化的一致性。前置条件安装 ML 后端官方文档用显式注释强调你必须安装 Torch 或 TensorFlow 后端之一才能加载该数据集。对应地torch.py 中定义了_TORCH_IMPORT_ERROR当未安装torch/torchvision时通过 lazy import 机制抛出清晰的提示信息。因此建议在加载前确认环境# 选择其一安装以 Torch 后端为例 pip install torch torchvision安装任一后端后FiftyOne 会自动选择可用的后端完成 CIFAR-10 的下载与转换。Python API 加载 CIFAR-10文档给出的 Python 示例是加载test分割并启动 FiftyOne App 进行可视化import fiftyone as fo import fiftyone.zoo as foz dataset foz.load_zoo_dataset(cifar10, splittest) session fo.launch_app(dataset)load_zoo_dataset定义于 fiftyone/zoo/datasets/init.py。根据其参数签名针对 CIFAR-10 常用参数说明如下参数默认值作用name_or_url必填数据集名称此处为cifar10splitNone指定单个分割如train/test不传则加载全部可用分割splitsNone指定分割列表如[train, test]label_fieldNone标签存储字段名默认ground_truthdataset_nameNone自定义返回的 Dataset 名称默认按数据集分割自动生成download_if_necessaryTrue本地未找到时自动下载drop_existing_datasetFalse同名数据集已存在时是否删除重建persistentFalse会话结束后数据集是否持久化保留在数据库中overwriteFalse重新下载时是否覆盖已有文件cleanupTrue下载完成后是否清理临时文件progressNone是否显示进度条True/False/回调函数默认遵循fiftyone.config.show_progress_bars例如同时加载 train 和 test 两个分割并显式指定数据集名称import fiftyone as fo import fiftyone.zoo as foz dataset foz.load_zoo_dataset( cifar10, splits[train, test], dataset_namecifar10-full, )重复加载时若未指定自定义dataset_nameFiftyOne 会直接返回先前已加载的同一数据集参见 load_zoo_dataset 文档避免重复下载与重复建库。CLI 方式加载 CIFAR-10文档同样给出了 CLI 等效操作fiftyone zoo datasets load cifar10 --split test fiftyone app launch cifar10-test第一条命令通过 Dataset Zoo 子命令加载cifar10的test分割第二条命令启动 FiftyOne App 并打开对应加载完成后生成的数据集默认数据集名形如cifar10-test。CLI 与 Python API 最终走的是同一套 Zoo 下载与导入逻辑适合脚本化与服务器场景。加载后的数据形态与进一步使用由于 Torch/TF 后端最终都将数据导出为 FiftyOne 原生图像分类数据集加载完成后每个样本包含filepath字段与存储类别标签的ground_truth字段Classification类型可直接使用 FiftyOne 视图View进行筛选、排序与统计# 查看类别分布 print(dataset.count_values(ground_truth.label)) # 筛选出某一类别的样本并可视化 airplane_view dataset.filter_labels( ground_truth, fo.ViewField(label) airplane ) session fo.launch_app(airplane_view)这类能力使 CIFAR-10 不仅能作为开箱即用的基准数据也能作为模型评估、错误分析、数据增强等下游任务的起点——这与 Dataset Zoo 页面dataset_cards.rst对 CIFAR-10 用于测试 CNN 的基础视觉基准 的定位一致。上图即官方文档嵌入的 CIFAR-10test分割在 FiftyOne App 中的可视化效果对应 cifar10.rst 中的示例图。通过 App 的标签面板可以直观浏览 10 个类别的图像与ground_truth标签快速确认数据加载是否正确。小结CIFAR-10 作为 FiftyOne Dataset Zoo 中的标准图像分类数据集其接入流程高度自动化安装 Torch/TensorFlow 后端后一条 Python 调用或一条 CLI 命令即可完成下载、格式转换与入库随即获得 FiftyOne 原生的可查询、可可视化数据集。其双后端实现tf.py 与 torch.py在底层分别依赖 TFDS 与 torchvision但对外呈现完全一致的数据接口这正是 Dataset Zoo 屏蔽底层差异、统一数据体验的设计体现。【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表