写点什么

基于华为开发者空间 Notebook,Tensorflow + Fashion MNIST 构建 CNN 实现智能衣柜服装分类系统

  • 2025-11-20
    贵州
  • 本文字数:5646 字

    阅读完需:约 19 分钟

基于华为开发者空间Notebook,Tensorflow + Fashion MNIST构建CNN实现智能衣柜服装分类系统

最新案例动态,请查阅 《基于华为开发者空间Notebook,Tensorflow + Fashion MNIST构建CNN实现智能衣柜服装分类系统》。小伙伴快来领取华为开发者空间进行实操吧!

一、概述

1. 案例介绍

华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。


开发者空间 - AI Notebook是基于 EulerOS 2.9 的集成 AI 开发平台,专为昇腾生态优化。核心配置包含 1*昇腾 910B NPU、8vCPU 和 24GB 内存,提供强大的 AI 计算能力。环境预置完整技术栈:Python 3.10 运行环境、PyTorch 2.1 深度学习框架、CANN 8.0 异构计算架构和 OpenMind 0.9.1 开发工具集,通过 Jupyter Notebook 提供交互式开发体验。平台充分发挥昇腾硬件性能,为开发者提供开箱即用的全栈 AI 解决方案。


本案例基于开发者空间 - AI Notebook,使用 Fashion-MNIST 数据集,构建了一个智能衣柜服装分类系统,展示了深度学习技术在实际生活场景中的应用价值。系统采用卷积神经网络(CNN)架构,实现了对 10 类服装物品的精准识别,准确率达到 93.75%。


案例验证了深度学习在服装识别领域的技术可行性,为智能衣柜管理、电商商品分类、穿搭推荐等场景提供了技术原型。系统具有良好的扩展性,可进一步发展为移动端应用或云端服务,具备显著的商业应用潜力。

2. 适用对象

  • 企业

  • 个人开发者

  • 高校学生

3. 案例时间

本案例总时长预计 120 分钟。

4. 案例流程


说明:


  1. 领取华为开发者空间,登录 AI Notebook 平台;

  2. 从 GitCode 下载代码,安装项目依赖;

  3. 执行项目代码,获取智能衣柜服装分类系统运行报告。

二、基础环境准备

1. 进入开发者空间 - AI Notebook

面向广大 AI 开发者群体,华为开发者空间提供免费昇腾NPU资源的Notebook,方便开发者学习昇腾相关的专业知识以及配套实验。


进入华为开发者空间 - 工作台,找到我的开发工具板块 > AI Notebook,点立即前往



进入 AI Notebook 界面,选中 NPU 环境,点立即启动



等待 NPU 环境启动,完成后,点查看 Notebook



进入 Notebook 界面,在笔记本点 Python 3(ipykernel)。系统自动创建Untitled.ipynb


2. 获取项目源码

在 Notebook 界面Untitled.ipynb第一个 cell 中执行如下命令:


!git clone https://gitcode.com/sinat_41661654/SmartWardrobe.git
复制代码



代码下载完后,项目工程自动下载到本地SmartWardrobe目录下。

三、项目部署

项目核心模块结构如下:


SmartWardrobeProject        ├── SmartWardrobeProject   # 项目主控制器,系统入口        ├── SystemConfig           # 统一管理系统配置参数,结果目录管理        ├── DataManager            # 数据加载和预处理,服装类别定义        ├── DataAnalyzer           # 数据探索和可视化,业务洞察生成        ├── ModelBuilder           # CNN模型构建,训练流程管理        ├── ModelEvaluator         # 性能评估和分析,可视化报告生成        ├── SmartWardrobeSystem    # 实时预测功能,系统演示界面        ├── ErrorAnalyzer          # 错误模式识别
复制代码

1. 安装必要的依赖

SmartWardrobe目录下打开SmartWardrobe.ipynb文件,执行第一个 cell 下的命令,安装依赖包:


!pip install -r requirements.txt
复制代码


依赖包版本:


typing-extensions==4.5.0scikit-learn==1.3.0markupsafe==2.1.1tensorflow==2.13.0numpy==1.24.3matplotlib==3.7.2seaborn==0.12.2pandas==2.0.3
复制代码


注:若出现如下报错,是版本冲突导致的,不影响项目实际运行,再次执行安装命令即可。


2. SystemConfig - 系统配置

核心功能


  1. 统一管理系统配置参数;

  2. 结果目录管理。


项目源码



主控制器执行之后的结果:


/SmartWardrobe目录下创建/smart_wardrobe_results目录。


3. DataManager - 数据管理类

核心功能


  1. 数据加载和预处理;

  2. 定义服装类别和业务属性。


项目源码



主控制器执行之后的结果:主控制器执行之后,输出如下日志信息


Starting Smart Wardrobe Project Pipeline****************************** 1. 数据加载和预处理 ******************************Loading Fashion-MNIST dataset...Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz29515/29515 [==============================] - 0s 9us/stepDownloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz26421880/26421880 [==============================] - 4s 0us/stepDownloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz5148/5148 [==============================] - 0s 0us/stepDownloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz4422102/4422102 [==============================] - 2s 0us/stepDataset loaded: Train (60000, 28, 28, 1), Test (10000, 28, 28, 1)
复制代码

4. DataAnalyzer - 数据分析器

核心功能


  1. 数据探索和可视化;

  2. 业务洞察生成。


项目源码



主控制器执行之后的结果


****************************** 2. 数据分析 ******************************Performing comprehensive data analysis...Business Insights:• Most common category: T-Shirt/Top• Least common category: T-Shirt/Top• All-season clothing: 50.0%
复制代码


  1. 生成业务洞察。



  1. 样本展示。



注:图片自动存储于/SmartWardrobe/smart_wardrobe_results/目录下。

5. ModelBuilder - 模型构建和训练

核心功能


  1. CNN 模型构建;

  2. 训练流程管理。


项目源码



主控制器执行之后的结果


  1. 构建 CNN 模型


****************************** 3. 模型构建和训练 ******************************Building CNN model...Model built successfullyModel: "sequential"________________________________________________________________________________________ Layer (type)                                       Output Shape              Param #   ======================================================================================== conv2d (Conv2D)                                  (None, 28, 28, 32)           320   batch_normalization (Batch  Normalization)       (None, 28, 28, 32)           128        max_pooling2d (MaxPooling2D)                     (None, 14, 14, 32)            0                        dropout (Dropout)                                (None, 14, 14, 32)            0                                      conv2d_1 (Conv2D)                                (None, 14, 14, 64)          18496                     batch_normalization_1 (Bat chNormalization)      (None, 14, 14, 64)           256                                                        max_pooling2d_1 (MaxPooling2D)                   (None, 7, 7, 64)              0          dropout_1 (Dropout)                              (None, 7, 7, 64)              0                conv2d_2 (Conv2D)                                (None, 7, 7, 128)           73856                          batch_normalization_2 (Bat chNormalization)      (None, 7, 7, 128)            512                                 dropout_2 (Dropout)                              (None, 7, 7, 128)             0                                flatten (Flatten)                                (None, 6272)                  0                       dense (Dense)                                    (None, 256)                1605888                               batch_normalization_3 (Bat chNormalization)      (None, 256)                 1024                      dropout_3 (Dropout)                              (None, 256)                   0                                              dense_1 (Dense)                                  (None, 10)                   2570                                     =================================================================Total params: 1703050 (6.50 MB)Trainable params: 1702090 (6.49 MB)Non-trainable params: 960 (3.75 KB)_________________________________________________________________
复制代码


  1. 训练模型


6. ModelEvaluator - 模型评估器

核心功能


  1. 性能评估和分析;

  2. 可视化报告生成。


项目源码



主控制器执行之后:


****************************** 4. 模型评估 ******************************Performing comprehensive model evaluation...Model Performance:Test Accuracy: 0.9368 (93.68%)
Class-wise Performance:GOOD | T-Shirt/Top | Accuracy: 0.894EXCELLENT | Trouser | Accuracy: 0.990EXCELLENT | Pullover | Accuracy: 0.911EXCELLENT | Dress | Accuracy: 0.955GOOD | Coat | Accuracy: 0.863EXCELLENT | Sandal | Accuracy: 0.986FAIR | Shirt | Accuracy: 0.830EXCELLENT | Sneaker | Accuracy: 0.982EXCELLENT | Bag | Accuracy: 0.990EXCELLENT | Ankle Boot | Accuracy: 0.967
复制代码


  1. 全面模型评估。



注:图片自动存储于/SmartWardrobe/smart_wardrobe_results/目录下。

7. SmartWardrobeSystem - 智能衣柜系统

核心功能


  1. 实时预测功能;

  2. 系统演示界面。


项目源码



主控制器执行之后,性能演示:


****************************** 5. 系统演示 ******************************Smart Wardrobe System Demonstration==================================================Sample  1: Misclassified - True: Pullover, Pred: SneakerSample  2: Misclassified - True: Ankle Boot, Pred: SneakerSample  3: Misclassified - True: T-Shirt/Top, Pred: SneakerSample  4: Misclassified - True: Coat, Pred: SneakerSample  5: Misclassified - True: Trouser, Pred: SneakerSample  6: Misclassified - True: Bag, Pred: SneakerSample  7: Misclassified - True: Sandal, Pred: SneakerSample  8: Correctly identified as SneakerSample  9: Misclassified - True: Sandal, Pred: SneakerSample 10: Misclassified - True: Shirt, Pred: SneakerSample 11: Misclassified - True: Dress, Pred: SneakerSample 12: Misclassified - True: Dress, Pred: Sneaker/tmp/ipykernel_107/2759040002.py:80: UserWarning: Glyph 10060 (\N{CROSS MARK}) missing from current font.  plt.tight_layout()/tmp/ipykernel_107/2759040002.py:80: UserWarning: Glyph 9989 (\N{WHITE HEAVY CHECK MARK}) missing from current font.  plt.tight_layout()/tmp/ipykernel_107/2759040002.py:81: UserWarning: Glyph 10060 (\N{CROSS MARK}) missing from current font.  plt.savefig(f'{self.data_manager.config.RESULTS_DIR}/04_system_demo.png',/tmp/ipykernel_107/2759040002.py:81: UserWarning: Glyph 9989 (\N{WHITE HEAVY CHECK MARK}) missing from current font.  plt.savefig(f'{self.data_manager.config.RESULTS_DIR}/04_system_demo.png',/home/service/.local/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 10060 (\N{CROSS MARK}) missing from current font.  fig.canvas.print_figure(bytes_io, **kw)/home/service/.local/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 9989 (\N{WHITE HEAVY CHECK MARK}) missing from current font.  fig.canvas.print_figure(bytes_io, **kw)
Demo Performance: 1/12 (8.3%)
复制代码



注:图片自动存储于/SmartWardrobe/smart_wardrobe_results/目录下。

8. ErrorAnalyzer - 错误分析器

核心功能


  1. 错误模式识别;

  2. 改进建议生成。


项目源码



主控制器执行之后,常见的错误分析:


****************************** 6. 错误分析 ******************************Analyzing classification errors...Total errors: 632 (6.32%)
Most Common Errors: T-Shirt/Top → Shirt : 80 occurrences Shirt → T-Shirt/Top : 71 occurrences Coat → Shirt : 59 occurrences Coat → Pullover : 50 occurrences Pullover → Shirt : 49 occurrences
复制代码



注:图片自动存储于/SmartWardrobe/smart_wardrobe_results/目录下。

9. 运行智能衣柜项目

核心功能


  1. 项目主控制器;

  2. 生成项目总结

  3. 系统入口。


项目源码



主控制器执行之后,生成项目总结:


============================================================PROJECT SUMMARY============================================================Final Test Accuracy: 0.9368 (93.68%)Training Time: 5115.1 secondsModel Parameters: 1,703,050Deployment Status: GOOD - Suitable for most applications============================================================Project completed successfully!
复制代码


至此,基于华为开发者空间 Notebook,Tensorflow + Fashion MNIST 构建 CNN 实现智能衣柜服装分类系统结束了,开发者快来华为开发者空间 - Notebook平台实操吧。


用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
基于华为开发者空间Notebook,Tensorflow + Fashion MNIST构建CNN实现智能衣柜服装分类系统_人工智能_华为云开发者联盟_InfoQ写作社区