ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

FiftyOne 数据集动物园实战:使用 Fashion MNIST 加载与可视化图像分类数据集

FiftyOne 数据集动物园实战:使用 Fashion MNIST 加载与可视化图像分类数据集 FiftyOne 数据集动物园实战使用 Fashion MNIST 加载与可视化图像分类数据集【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone本篇技术指南以 FiftyOne 开源仓库中的 Fashion MNIST 数据集文档 为骨架系统讲解如何通过 FiftyOne Dataset Zoo 一键下载 Zalando 的 Fashion-MNIST 时尚商品图像分类数据集并深入其 TF / Torch 双后端源码实现。读完本文你将掌握load_zoo_dataset/ CLI 两种加载方式、数据集字段结构与标签解析机制并能直接在 FiftyOne App 中可视化浏览 70,000 张 28×28 灰度图像。Fashion MNIST 数据集速览Fashion MNIST全称 The Fashion-MNIST database of Zalandos fashion article images是 Zalando 发布的时尚服饰商品图像数据集由 fashion-mnist 原始仓库 提供。作为经典 MNIST 手写数字数据集的现代替代品它保留了同样的图像尺寸、类别数量与样本规模但将识别对象替换为更具挑战性的 10 类服饰商品是图像分类算法验证与教学中的常用基准。Details数据集详情属性值Dataset namefashion-mnistDataset sourcehttps://github.com/zalandoresearch/fashion-mnistDataset licenseMITDataset size36.42 MBTagsimage, classificationSupported splitstrain, testZooDataset classesFashionMNISTDatasetTF backend、FashionMNISTDatasetTorch backend数据集包含70,000 张 28 × 28 的灰度图像共 10 个类别其中60,000 张训练图像与10,000 张测试图像。这一划分与原始发布完全一致train/test两个 split 分别对应训练集与测试集。注意加载该数据集前你必须先安装 Torch 或 TensorFlow 后端即fiftyone-zoo-datasets-torch或fiftyone-zoo-datasets-tf依赖具体后端要求见 Dataset Zoo Overview 中的 ML 后端说明。双后端 ZooDataset 类的源码实现Fashion MNIST 在 FiftyOne 仓库中注册了两个 ZooDataset 实现分别对应两种机器学习后端注册映射均可在 fiftyone/zoo/datasets/tf.py 与 fiftyone/zoo/datasets/torch.py 中看到键名均为fashion-mnist。TF 后端基于 TFDS 的封装在 fiftyone/zoo/datasets/tf.py 中FashionMNISTDataset继承自TFDSDatasetTensorFlow Datasets 基类核心属性与下载逻辑如下name返回fashion-mnistlicense返回MITtags返回(image, classification)supported_splits返回(train, test)_download_and_prepare内部通过tfds.load(fashion_mnist, splitsplit, data_dirdownload_dir, downloadTrue, with_infoTrue)调用 TensorFlow Datasets 的官方fashion_mnist构建器完成下载与准备并通过info.features[label].names读取类别名称列表。Torch 后端基于 TorchVision 的封装在 fiftyone/zoo/datasets/torch.py 中FashionMNISTDataset继承自TorchVisionDataset下载逻辑更为直接def _download_and_prepare(self, dataset_dir, scratch_dir, split): train split train def download_fcn(download_dir): return torchvision.datasets.FashionMNIST( download_dir, traintrain, downloadTrue ) get_classes_fcn _parse_classification_labels sample_parser foud.ImageClassificationSampleParser() return _download_and_prepare( dataset_dir, scratch_dir, download_fcn, get_classes_fcn, sample_parser, )其中split train决定torchvision.datasets.FashionMNIST加载训练还是测试子集类别标签通过_parse_classification_labels解析样本由foud.ImageClassificationSampleParser()图像分类样本解析器统一转换为 FiftyOne 的 Sample 格式标签字段默认落在ground_truth。从源码结构可以看出无论使用哪个后端最终都会把原始数据规整为图像文件 分类标签的标准结构因此两个后端的加载结果在 FiftyOne 中拥有一致的字段语义。通过 Python API 加载并可视化FiftyOne 在 fiftyone/zoo/datasets/init.py 中提供了load_zoo_dataset()这一核心入口。按 关联文档 的示例加载测试集并启动 Appimport fiftyone as fo import fiftyone.zoo as foz dataset foz.load_zoo_dataset(fashion-mnist, splittest) session fo.launch_app(dataset)首次执行时load_zoo_dataset会自动下载数据默认download_if_necessaryTrue并导入到本地 FiftyOne 数据库中再次以相同的name_or_url与 split 调用时若未指定自定义dataset_name将直接返回已存在的同名数据集避免重复下载。常用参数说明load_zoo_dataset的核心参数来源fiftyone/zoo/datasets/init.py参数默认值说明name_or_url必填要加载的 zoo 数据集名称如fashion-mnistsplitNone要加载的 split如train、test不传则加载全部可用 splitssplitsNone要加载的 split 列表如[train, test]与split二选一label_fieldNone标签存储字段名默认单标签数据集为ground_truthdataset_nameNone返回数据集的命名默认根据数据集名与 split 自动构造download_if_necessaryTrue本地不存在时是否自动下载drop_existing_datasetFalse同名数据集已存在时是否先删除persistentFalse会话结束后数据集是否在数据库中持久保留overwriteFalse下载时是否覆盖已有文件cleanupTrue是否清理下载过程中产生的临时文件progressNone是否显示进度条True/False/进度回调默认遵循fiftyone.config.show_progress_bars例如一次性加载训练集与测试集并命名为自定义数据集import fiftyone as fo import fiftyone.zoo as foz dataset foz.load_zoo_dataset( fashion-mnist, splits[train, test], dataset_namefashion-mnist-full, persistentTrue, ) print(dataset) session fo.launch_app(dataset)加载完成后数据集中的每个样本都包含filepath图像路径与ground_truthClassification标签值为T-shirt/top、Trouser、Pullover、Dress、Coat、Sandal、Shirt、Sneaker、Bag、Ankle boot等 10 类服饰名称之一可直接用于分类任务的标注浏览、质量检查或模型评估。通过 CLI 加载与启动 App不写 Python 代码同样可以完成加载。按 关联文档 的 CLI 示例fiftyone zoo datasets load fashion-mnist --split test fiftyone app launch fashion-mnist-test第一条命令下载testsplit 并导入 FiftyOne生成的数据集名称为fashion-mnist-test第二条命令在浏览器中启动 FiftyOne App 并绑定该数据集进行可视化浏览。你也可以把--split test换成--split train加载训练集或去掉 split 参数加载全部数据。CLI 与 Python API 底层共享同一套 Dataset Zoo 下载与导入管线因此二者加载出的数据集完全等价。加载并启动 App 后即可看到 fashion-mnist 测试集的可视化效果下图来自 docs/source/images/dataset_zoo/fashion-mnist-test.png进阶查看数据集信息与标签统计如果你希望在导入前快速确认数据集元信息可以使用load_zoo_dataset_info同样定义于 fiftyone/zoo/datasets/init.pyimport fiftyone.zoo as foz info foz.load_zoo_dataset_info(fashion-mnist) print(info)加载完成后还可以利用 FiftyOne 的视图与聚合能力快速统计类别分布import fiftyone as fo import fiftyone.zoo as foz dataset foz.load_zoo_dataset(fashion-mnist, splittest) # 统计每个类别的样本数量 counts dataset.count_values(ground_truth.label) print(counts)由于fashion-mnist在 10 个类别上均匀分布每个类别 1,000 张测试图像该统计可以作为后续分类模型评估中类别均衡性的基线验证。总结Fashion MNIST 是 FiftyOne Dataset Zoo 中开箱即用的图像分类数据集之一数据特征70,000 张 28×28 灰度图像、10 个服饰类别、train/test两个 split、MIT 许可、体积仅 36.42 MB双后端支持TF 后端基于tfds.load(fashion_mnist, ...)见 tf.pyTorch 后端基于torchvision.datasets.FashionMNIST见 torch.py注册键均为fashion-mnist一行代码加载foz.load_zoo_dataset(fashion-mnist, splittest)即可完成下载、导入与标签解析配合fo.launch_app(dataset)秒级进入可视化浏览。无论是快速上手 FiftyOne、验证图像分类模型还是作为教学演示数据fashion-mnist都是值得优先尝试的入门级 Zoo 数据集。更完整的数据集列表与通用加载方式可继续阅读 Dataset Zoo Overview。【免费下载链接】fiftyoneRefine high-quality datasets and visual AI models项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表