深度學習應用開發實踐——基於MindSpore平臺

明朝燕 金蒼宏 王軍 石龍翔

  • 深度學習應用開發實踐——基於MindSpore平臺-preview-1
深度學習應用開發實踐——基於MindSpore平臺-preview-1

商品描述

本書聚焦人工智能應用型人才培養的核心需求,以國產深度學習框架——華為昇思(MindSpore)為開發平臺,通過案例引導與項目驅動相結合的教學模式,系統講解深度學習技術在實際應用場景的落地實踐。本書內容涵蓋線性回歸、卷積神經網絡、循環神經網絡及強化學習等典型算法和主流模型,共有10個實踐案例貫穿其中,包括圖像分類、醫學影像分割、文本情感分析、遊戲策略優化等。本書特別融入模型可視化、遷移學習、服務化部署等工程化技能,並提供完整的案例代碼和實驗數據供讀者學習。 本書主要面向應用型高等學校的工科專業學生(需要具備基礎編程能力與數學知識),同時適合希望快速掌握人工智能落地能力的開發者,以及開設“人工智能+X”交叉課程的教師參考。

作者簡介

明朝燕 浙大城市學院計算機與計算科學學院副教授,浙江大學、浙江工業大學、浙大城市學院碩士研究生導師。博士畢業於新加坡國立大學,師從人工智能領域國際知名學者蔡達成(Chua Tat Seng)教授。長期從事領域知識庫構建及領域大模型相關研究。主持或參與“十四五”國家重點研發計劃專項課題、新加坡國家重點研究基金項目和浙江省自然科學基金項目等。在SIGIR、1JCAl、AAAI等會議IEEE Transactions on Knowledge and Data Engineering、ACM Transactions on Information System等期刊上發表代表性論文50余篇,獲得國際、國內發明專利授權10余項,並完成多項轉化。擔任CCF大模型論壇執行委員、CCF自然語言處理專業委員會執行委員。 金蒼宏 浙大城市學院計算機與計算科學學院教授、院長助理,人工智能專業負責人,浙江大學、浙江工業大學、浙大城市學院碩士生導師。博士畢業於浙江大學。擔任大數據計算技術、人工智能概論、深度學習應用開發、智能軟件基礎與實踐等課程主講教師,擔任華為、谷歌師資培訓講師。獲得6項教育部產學合作項目支持。主要研究方向為城市數字治理、時空軌跡挖掘、智慧交通、生物耐藥性等。主持或參與國家級和省級項目10余項,以第一作者身份發表論文20余篇,獲得發明專利授權10余項。 王軍 浙大城市學院計算機與計算科學學院副教授。博士畢業於浙江大學,並在上海交通大學從事博士後研究工作。曾在明峰醫療系統股份有限公司任職,具備豐富的從業經驗。主要研究方向為醫學圖像處理與分析、醫工交叉以及計算機視覺。擔任計算機視覺、深度學習應用開發等課程的主講教師。主持國家自然科學基金面上項目1項,中國博士後科學基金面上項目1項。在IEEE Transactions on Medical Imaging、Medical Physics、 npj Digital Medicine等期刊上發表多篇論文。獲得多項發明專利授權。 石龍翔 浙大城市學院計算機與計算科學學院人工智能研究所講師。博士畢業於浙江大學。主要研究方向為人工智能、強化學習。擔任Python程序設計與實驗、數據結構與算法等課程的主講教師。主持省級項目2項,以第一作者身份在ACM Transactionson Knowledge Discovery from Data、ACM Transactions on Graphics等期刊和AAMAS等國際會議上發表多篇論文,獲得多項專利授權。

目錄大綱

第 1章 人工智能概述 1 1.1 感受人工智能時代的到來 1 1.1.1 人機博弈 1 1.1.2 宇宙探索 2 1.1.3 人機對話 2 1.1.4 計算機視覺 2 1.1.5 自然語言處理和大語言模型 3 1.1.6 醫療人工智能 4 1.1.7 智能交通 5 1.1.8 機器人 5 1.2 人工智能發展概述 6 1.2.1 人工智能起源 6 1.2.2 人工智能與圖靈測試 7 1.2.3 人工智能發展史 8 1.3 機器學習 9 1.3.1 人工智能、機器學習與深度學習 9 1.3.2 什麼是機器學習 9 1.3.3 機器學習典型求解問題類型 10 1.4 深度學習 11 1.4.1 神經元 12 1.4.2 神經網絡 14 1.4.3 深度神經網絡 15 1.4.4 卷積神經網絡 15 1.4.5 深度學習的發展歷程 16 1.5 深度學習框架 17 1.5.1 MindSpore 18 1.5.2 PyTorch 19 1.5.3 TensorFlow 20 練習與思考 20 第 2章 MindSpore的安裝與基礎知識 21 2.1 MindSpore的安裝 21 2.2 MindSpore基礎——張量 23 2.2.1 張量的創建 23 2.2.2 張量的屬性 24 2.2.3 張量的索引 25 2.2.4 張量的運算 25 2.2.5 張量與NumPy的轉換 26 練習與思考 26 第3章 線性回歸問題:MindSpore開發基礎 27 3.1 單變量線性回歸案例 27 3.2 監督學習的基本術語 28 3.2.1 特征和標簽 28 3.2.2 樣本和模型 28 3.2.3 訓練(學習) 28 3.2.4 損失 28 3.3 監督學習模型訓練的過程與原理 29 3.3.1 監督學習模型的訓練過程 29 3.3.2 定義損失函數 30 3.3.3 降低損失與優化 31 3.3.4 超參數 31 3.4 自動微分和優化器 31 3.4.1 牛頓法 31 3.4.2 GD算法 32 3.4.3 SGD算法 32 3.4.4 動量算法 32 3.4.5 Adam算法 33 3.5 單變量線性回歸的MindSpore實戰 33 3.5.1 導入庫與定義可視化函數 33 3.5.2 構建模型 34 3.5.3 訓練模型 35 3.5.4 應用模型 36 練習與思考 37 第4章 波士頓房價預測:多元線性回歸問題的建模 38 4.1 波士頓房價預測問題簡介 38 4.2 數據集的拆分 39 4.2.1 預防過擬合 39 4.2.2 數據集拆分:訓練集與測試集 39 4.3 多元線性回歸模型 40 4.4 波士頓房價預測問題的建模 41 4.4.1 導入庫與準備數據 41 4.4.2 構建模型 43 4.4.3 訓練模型 44 4.4.4 應用模型 46 練習與思考 47 第5章 MNIST手寫數字識別:全連接神經網絡的建模 48 5.1 多層全連接神經網絡 48 5.1.1 多層全連接神經網絡的定義 48 5.1.2 多層全連接神經網絡的計算方式 50 5.2 MNIST手寫數字識別的全連接神經網絡建模 52 5.2.1 單隱藏層全連接神經網絡的建模 52 5.2.2 多層全連接神經網絡的建模 57 練習與思考 58 第6章 CIFAR-10圖像識別問題:卷積神經網絡與應用 59 6.1 案例介紹 59 6.2 從神經網絡到卷積神經網絡 60 6.2.1 全連接網絡的局限性 60 6.2.2 卷積神經網絡的應用 61 6.3 卷積神經網絡的基本知識 62 6.3.1 卷積神經網絡基本結構 62 6.3.2 卷積運算 63 6.3.3 池化操作 68 6.3.4 卷積步長 70 6.3.5 卷積神經網絡的工作過程 70 6.3.6 進一步理解卷積 71 6.3.7 經典卷積神經網絡 73 6.4 MindSpore對卷積神經網絡的支持 74 6.4.1 MindSpore的卷積操作 74 6.4.2 MindSpore的池化操作 75 6.4.3 MindSpore對經典模型的支持 76 6.5 CIFAR-10圖像識別案例的MindSpore實現 77 6.5.1 CIFAR-10數據集下載 77 6.5.2 模型構建與訓練實踐 78 6.5.3 模型保存與加載 81 練習與思考 84 第7章 卷積神經網絡進階:圖像語義分割 85 7.1 ISIC2016皮膚病分割案例介紹 85 7.2 從圖像分類到語義分割 86 7.3 UNet語義分割原理 86 7.3.1 UNet網絡結構 86 7.3.2 分割損失函數 87 7.3.3 模型性能評價指標 88 7.4 ISIC2016皮膚病分割案例實踐 88 7.4.1 數據集的下載與封裝 88 7.4.2 UNet網絡結構代碼實現 91 7.4.3 UNet訓練過程代碼實現 93 7.4.4 UNet性能評估代碼實現 95 練習與思考 97 第8章 貓狗大戰:遷移學習及應用 98 8.1 貓狗大戰案例簡介 98 8.2 MindSpore.Dataset 模塊 98 8.2.1 MindRecord數據格式 98 8.2.2 將JSON文件和圖像轉化成MindRecord數據格式 100 8.2.3 自定義數據集 101 8.3 貓狗大戰數據集制作 102 8.3.1 按標簽類別重組文件存放 102 8.3.2 讀取圖像和標簽信息 102 8.3.3 貓狗大戰數據集的建立與探索 105 8.4 遷移學習簡介 106 8.5 基於VGG-16的自定義遷移學習模型構建 107 8.5.1 VGG-16模型簡介 107 8.5.2 構建模型 108 8.5.3 訓練模型 110 8.5.4 模型保存 114 8.5.5 進行預測 114 練習與思考 115 第9章 自然語言處理:循環神經網絡應用實踐. 116 9.1 循環神經網絡 116 9.1.1 數據的時序與含義 116 9.1.2 循環神經網絡的基本結構和局限性 116 9.1.3 LSTM網絡 117 9.1.4 GRU 119 9.2 自然語言處理的基礎知識 120 9.2.1 分詞技術 120 9.2.2 詞表示技術 123 9.3 LSTM文本分類:電影評論情感分析 . 126 9.3.1 IMDb數據集獲取 126 9.3.2 加載IMDb數據集 128 9.3.3 加載預訓練詞向量 129 9.3.4 數據集預處理 131 9.3.5 模型構建、訓練和評估 132 9.4 LSTM+CRF序列標註:中文命名實體識別 137 9.4.1 序列標註任務 137 9.4.2 條件隨機場 137 9.4.3 BiLSTM+CRF模型 143 練習與思考 146 第 10章 強化學習及應用 147 10.1 《月球著陸》遊戲 147 10.2 強化學習的基礎知識 148 10.2.1 強化學習的基本概念 148 10.2.2 強化學習的學習過程 148 10.2.3 深度強化學習與DQN算法 154 10.3 《月球著陸》遊戲MindSpore實踐 155 10.3.1 模型構建 156 10.3.2 經驗回放實現 157 10.3.3 模型訓練 158 10.3.4 結果展示 161 練習與思考 162 第 11章 菜品識別:Web應用 163 11.1 菜品識別深度學習模型 163 11.1.1 菜品識別數據集獲取 163 11.1.2 菜品識別模型訓練 165 11.1.3 菜品識別模型測試與評估 168 11.2 菜品識別API 169 11.2.1 RESTful API基本介紹 169 11.2.2 Flask開發環境配置 170 11.2.3 菜品識別API構建 170 11.2.4 菜品識別API部署 171 11.2.5 菜品識別API curl測試 172 11.3 菜品識別Web應用 173 11.3.1 Web應用構建 173 11.3.2 Web應用測試 178 11.3.3 菜品識別Web應用的擴展 180 練習與思考 181 第 12章 花卉識別App:MindSpore Lite及應用 182 12.1 MindSpore Lite 的基礎知識 182 12.1.1 MindSpore Lite 的基本組成 182 12.1.2 MindSpore Lite 的優勢 184 12.2 MindSpore Lite 模型部署和應用 184 12.2.1 模型選擇 185 12.2.2 模型轉換 185 12.2.3 模型部署與應用 186 12.3 花卉識別模型構建、訓練與MindSpore Lite導出 186 12.3.1 構建花卉識別模型 186 12.3.2 訓練花卉識別模型 194 12.3.3 MindSpore Lite 格式模型文件導出 196 12.4 Android App開發 196 12.4.1 獲取花卉識別App工程文件 196 12.4.2 安裝Android開發環境 198 12.4.3 打開Example中的App工程 198 12.4.4 加入MindSpore Lite模型文件 199 12.4.5 填充代碼框架 199 12.4.6 測試和運行App 203 練習與思考 207 參考文獻  208