基于华为开发者空间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. 执行项目代码,获取智能衣柜服装分类系统运行报告。

5. 资源总览

本案例预计花费0元。

资源名称 规格 单价(元) 时长(分钟)
开发者空间 - AI Notebook NPU basic · 1 * NPU 910B · 8v CPU · 24GB | euler2.9-py310-torch2.1.0-cann8.0-openmind0.9.1-notebook 免费 120

二、基础环境准备

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.0
scikit-learn==1.3.0
markupsafe==2.1.1
tensorflow==2.13.0
numpy==1.24.3
matplotlib==3.7.2
seaborn==0.12.2
pandas==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.gz
29515/29515 [==============================] - 0s 9us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26421880/26421880 [==============================] - 4s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
5148/5148 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4422102/4422102 [==============================] - 2s 0us/step
Dataset 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 successfully
    Model: "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)


  2. 训练模型

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.894
EXCELLENT   | Trouser         | Accuracy: 0.990
EXCELLENT   | Pullover        | Accuracy: 0.911
EXCELLENT   | Dress           | Accuracy: 0.955
GOOD       | Coat            | Accuracy: 0.863
EXCELLENT   | Sandal          | Accuracy: 0.986
FAIR        | Shirt           | Accuracy: 0.830
EXCELLENT   | Sneaker         | Accuracy: 0.982
EXCELLENT   | Bag             | Accuracy: 0.990
EXCELLENT   | 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: Sneaker
Sample  2: Misclassified - True: Ankle Boot, Pred: Sneaker
Sample  3: Misclassified - True: T-Shirt/Top, Pred: Sneaker
Sample  4: Misclassified - True: Coat, Pred: Sneaker
Sample  5: Misclassified - True: Trouser, Pred: Sneaker
Sample  6: Misclassified - True: Bag, Pred: Sneaker
Sample  7: Misclassified - True: Sandal, Pred: Sneaker
Sample  8: Correctly identified as Sneaker
Sample  9: Misclassified - True: Sandal, Pred: Sneaker
Sample 10: Misclassified - True: Shirt, Pred: Sneaker
Sample 11: Misclassified - True: Dress, Pred: Sneaker
Sample 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 seconds
Model Parameters: 1,703,050
Deployment Status: GOOD - Suitable for most applications
============================================================
Project completed successfully!

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

相关推荐
forgeda3 小时前
赛灵思FPGA的市场份额,要从2025年的55%,进一步提升到2030年的70%,凭什么?
ai·fpga开发
Olafur_zbj4 小时前
【AI】矩阵乘为什么是加权求和?
ai·自注意力
沛沛老爹5 小时前
AI入门之GraphRAG企业级部署性能优化策略:从索引到检索的全链路提效实践
人工智能·ai·性能优化·rag·入门知识·graphrag·lightrag
视觉&物联智能8 小时前
【杂谈】-人工智能浪潮中的网络安全守护者:CISO的战略角色与使命
人工智能·web安全·ai·信息安全·aigc·agi·ciso
杜子不疼.10 小时前
【Linux】进程状态全解析:从 R/S/D/T 到僵尸 / 孤儿进程
linux·人工智能·ai
CoderJia程序员甲16 小时前
GitHub 热榜项目 - 日榜(2025-11-15)
ai·开源·大模型·github·ai教程