一、概述

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. 案例流程

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph

説明:

  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,點立即前往

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_開發者_02

進入AI Notebook界面,選中NPU環境,點立即啓動

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_項目源碼_03

等待NPU環境啓動,完成後,點查看Notebook

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_04

進入Notebook界面,在筆記本點Python 3(ipykernel)。系統自動創建Untitled.ipynb

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_項目源碼_05

2. 獲取項目源碼

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

!git clone https://gitcode.com/sinat_41661654/SmartWardrobe.git

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_06

代碼下載完後,項目工程自動下載到本地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

注:若出現如下報錯,是版本衝突導致的,不影響項目實際運行,再次執行安裝命令即可。

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_開發者_07

2. SystemConfig - 系統配置

核心功能

  1. 統一管理系統配置參數;
  2. 結果目錄管理。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_08

主控制器執行之後的結果:

/SmartWardrobe目錄下創建/smart_wardrobe_results目錄。

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_09

3. DataManager - 數據管理類

核心功能

  1. 數據加載和預處理;
  2. 定義服裝類別和業務屬性。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_開發者_10

主控制器執行之後的結果:主控制器執行之後,輸出如下日誌信息

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. 業務洞察生成。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_11

主控制器執行之後的結果

****************************** 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. 生成業務洞察。

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_12

  1. 樣本展示。

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_開發者_13

注:圖片自動存儲於/SmartWardrobe/smart_wardrobe_results/目錄下。

5. ModelBuilder - 模型構建和訓練

核心功能

  1. CNN模型構建;
  2. 訓練流程管理。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_14

主控制器執行之後的結果

  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)
_________________________________________________________________
  1. 訓練模型

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_開發者_15

6. ModelEvaluator - 模型評估器

核心功能

  1. 性能評估和分析;
  2. 可視化報告生成。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_開發者_16

主控制器執行之後:

****************************** 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. 全面模型評估。

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_17

注:圖片自動存儲於/SmartWardrobe/smart_wardrobe_results/目錄下。

7. SmartWardrobeSystem - 智能衣櫃系統

核心功能

  1. 實時預測功能;
  2. 系統演示界面。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_18

主控制器執行之後,性能演示:

****************************** 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%)

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_開發者_19

注:圖片自動存儲於/SmartWardrobe/smart_wardrobe_results/目錄下。

8. ErrorAnalyzer - 錯誤分析器

核心功能

  1. 錯誤模式識別;
  2. 改進建議生成。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_項目源碼_20

主控制器執行之後,常見的錯誤分析:

****************************** 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

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_21

注:圖片自動存儲於/SmartWardrobe/smart_wardrobe_results/目錄下。

9. 運行智能衣櫃項目

核心功能

  1. 項目主控制器;
  2. 生成項目總結
  3. 系統入口。

項目源碼

基於華為開發者空間Notebook,Tensorflow + Fashion MNIST構建CNN實現智能衣櫃服裝分類系統_Glyph_22

主控制器執行之後,生成項目總結:

============================================================
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平台實操吧。