本書旨在介紹智能前端開發(fā)和深度學(xué)習(xí)。本書首先介紹了相關(guān)的開發(fā)環(huán)境、前端開發(fā)基礎(chǔ)知識、深度學(xué)習(xí)基礎(chǔ)知識、前端智能框架和卷積神經(jīng)網(wǎng)絡(luò),然后講述了線性回歸、logistical 回歸、XOR 問題、人體姿態(tài)檢測:目標(biāo)檢測、光學(xué)字符識別等方面的案例,最后講解了前端智能化案例。
本書適合 Web 前端開發(fā)人員、人工智能開發(fā)人員閱讀,也可作為計算機(jī)相關(guān)專業(yè)師生的參考用書。
1.深入淺出,通俗易懂
基于TensorFlow.js講述如何在瀏覽器端開發(fā)人工智能應(yīng)用,深入淺出地介紹了前端開發(fā)、深度學(xué)習(xí)的相關(guān)知識,幫助讀者提升智能前端開發(fā)水平。
2.實用工具書,針對性強(qiáng)
從環(huán)境配置出發(fā),詳細(xì)介紹了卷積神經(jīng)網(wǎng)絡(luò)與移動端常用的幾個網(wǎng)絡(luò)模型。
3.實例豐富,參考性強(qiáng)
提供大量實際案例,具有較高參考價值。
4.適用性強(qiáng),具有廣泛性
適配新版本以及多類型設(shè)備,具有廣泛參考性。
石璞東,西安建筑科技大學(xué)碩士研究生,研究方向包括機(jī)器學(xué)習(xí)、Web開發(fā),擔(dān)任百度飛槳領(lǐng)航團(tuán)金牌團(tuán)長和hahaWebsite網(wǎng)站站長。
吳萌,西安建筑科技大學(xué)信息與控制工程學(xué)院副教授,碩士生導(dǎo)師,美國俄亥俄州立大學(xué)訪問學(xué)者,中國圖象圖形學(xué)學(xué)會數(shù)字文化遺產(chǎn)專委會委員。
王慧琴,西安建筑科技大學(xué)信息與控制工程學(xué)院副院長、教授、博士生導(dǎo)師,通信與信息系統(tǒng)研究所所長,陜西省圖象圖形學(xué)學(xué)會理事,中國圖象圖形學(xué)學(xué)會圖像應(yīng)用與系統(tǒng)集成專委會委員,中國圖象圖形學(xué)學(xué)會數(shù)字文化遺產(chǎn)專委會委員。
目 錄
第 1章 開發(fā)環(huán)境配置 1
1.1 安裝Anaconda3 1
1.2 安裝TensorFlow 2 6
1.3 安裝npm包管理工具 11
1.4 安裝TensorFlow.js的相關(guān)包 14
1.5 使用WebStorm 18
1.6 使用Google瀏覽器 19
1.6.1 注冊Chrome Web Store開發(fā)者 19
1.6.2 Google瀏覽器擴(kuò)展程序 20
1.7 使用微信開發(fā)者工具 27
1.7.1 添加微信小程序插件 29
1.7.2 使用微信小程序插件 29
1.7.3 發(fā)布微信小程序 35
第 2章 前端開發(fā)基礎(chǔ) 39
2.1 背景知識概述 39
2.2 HTML基礎(chǔ) 40
2.2.1 HTML文檔基本結(jié)構(gòu) 41
2.2.2 常用標(biāo)簽 49
2.3 CSS基礎(chǔ) 55
2.3.1 CSS的3種使用方法 55
2.3.2 CSS選擇器 56
2.4 JavaScript基礎(chǔ) 56
2.5 與Google擴(kuò)展程序相關(guān)的JavaScriptAPI 58
2.6 深度學(xué)習(xí)中的JavaScript 61
2.6.1 JavaScript數(shù)據(jù)類型 61
2.6.2 JavaScript異步編程 63
2.7 微信小程序開發(fā) 67
2.7.1 微信小程序框架結(jié)構(gòu)分析 68
2.7.2 頁面描述文件 72
2.7.3 頁面樣式文件 87
2.7.4 邏輯層文件 88
2.7.5 小程序的事件系統(tǒng) 91
第3章 深度學(xué)習(xí)概述 95
3.1 深度學(xué)習(xí)環(huán)境 95
3.1.1 云端深度學(xué)習(xí)環(huán)境選擇 95
3.1.2 本地深度學(xué)習(xí)環(huán)境搭建 104
3.2 深度學(xué)習(xí)框架 105
3.3 TensorFlow 2基礎(chǔ) 113
3.3.1 數(shù)據(jù)類型 113
3.3.2 數(shù)值精度 115
3.3.3 操作和計算圖 116
3.3.4 自動微分和梯度帶 117
3.3.5 廣播機(jī)制 118
3.3.6 框架概述 118
3.4 深度學(xué)習(xí)基礎(chǔ) 119
3.4.1 BP神經(jīng)網(wǎng)絡(luò) 120
3.4.2 激活函數(shù) 121
3.4.3 softmax函數(shù) 126
3.4.4 損失函數(shù) 126
3.4.5 梯度下降算法 130
3.4.6 反向傳播 132
第4章 TensorFlow.js框架詳解 134
4.1 TensorFlow.js框架概述 134
4.2 TensorFlow.js低階API詳解 136
4.2.1 張量操作方法 136
4.2.2 數(shù)學(xué)運(yùn)算 148
4.3 TensorFlow.js高階API詳解 153
4.3.1 構(gòu)建模型 154
4.3.2 模型配置 160
4.3.3 模型訓(xùn)練 160
4.3.4 模型評估 160
4.3.5 模型轉(zhuǎn)換 164
4.4 TensorFlow.js Vis庫詳解 166
4.4.1 Visor接口方法介紹 167
4.4.2 模型可視化 168
4.4.3 數(shù)據(jù)可視化 173
4.4.4 模型評價指標(biāo) 175
4.5 其他API 176
4.5.1 數(shù)據(jù)操作 176
4.5.2 瀏覽器操作 183
4.5.3 性能優(yōu)化 184
4.5.4 正則化 185
4.5.5 早停法 185
第5章 卷積神經(jīng)網(wǎng)絡(luò) 187
5.1 卷積神經(jīng)網(wǎng)絡(luò)概述 187
5.2 卷積層 188
5.3 池化層 192
5.4 輕量級的卷積神經(jīng)網(wǎng)絡(luò) 194
5.4.1 SqueezeNet 195
5.4.2 MobileNetV1 198
5.4.3 ShuffleNetV1 201
5.4.4 Xception 203
第6章 TensorFlow.js基礎(chǔ)案例 206
6.1 線性回歸 207
6.1.1 案例簡介 207
6.1.2 代碼實現(xiàn) 207
6.2 logistical回歸 211
6.2.1 案例簡介 211
6.2.2 代碼實現(xiàn) 211
6.3 XOR問題 215
6.3.1 案例簡介 215
6.3.2 代碼實現(xiàn) 216
6.4 加載與應(yīng)用MobileNet模型 220
6.4.1 案例簡介 220
6.4.2 代碼實現(xiàn) 220
6.5 《你畫我猜》(MNIST手寫數(shù)字版) 224
6.5.1 案例簡介 224
6.5.2 代碼實現(xiàn) 224
第7章 TensorFlow官方數(shù)據(jù)集實戰(zhàn) 231
7.1 boston_housing數(shù)據(jù)集與實戰(zhàn)案例 231
7.1.1 數(shù)據(jù)集介紹 231
7.1.2 房價預(yù)測實戰(zhàn) 232
7.2 與CIFAR-10數(shù)據(jù)集相關(guān)的實戰(zhàn)案例 235
7.2.1 數(shù)據(jù)集介紹 235
7.2.2 在Anaconda3 Jupyter Notebook中加載數(shù)據(jù)集 235
7.2.3 在Kaggle中導(dǎo)入CIFAR-10數(shù)據(jù)集 236
7.2.4 從本地導(dǎo)入CIFAR-10數(shù)據(jù)集 240
7.3 與CIFAR-100數(shù)據(jù)集相關(guān)的實戰(zhàn)案例 248
7.3.1 數(shù)據(jù)集介紹 248
7.3.2 數(shù)據(jù)集展示 249
7.4 與MNIST數(shù)據(jù)集相關(guān)的實戰(zhàn)案例 253
7.4.1 數(shù)據(jù)集介紹 253
7.4.2 數(shù)據(jù)集展示 253
7.5 與Fashion_MNIST數(shù)據(jù)集相關(guān)實戰(zhàn)案例 255
7.5.1 數(shù)據(jù)集介紹 255
7.5.2 數(shù)據(jù)集加載 256
7.6 基于CNN的MNIST手寫數(shù)字識別 257
7.6.1 自定義網(wǎng)絡(luò)模型 257
7.6.2 微信小程序部署 261
第8章 基于CNN的常見水果分類識別 266
8.1 數(shù)據(jù)集介紹 266
8.2 數(shù)據(jù)集標(biāo)注 269
8.3 數(shù)據(jù)預(yù)處理 277
8.3.1 數(shù)據(jù)文件讀取 277
8.3.2 文件解碼 278
8.3.3 文件數(shù)據(jù)類型轉(zhuǎn)換 278
8.3.4 數(shù)據(jù)歸一化 280
8.4 模型概覽 282
8.5 模型設(shè)計 284
8.6 模型配置 284
8.7 模型訓(xùn)練 285
8.8 模型評估 286
8.9 模型部署 289
8.9.1 在微信小程序中加載模型 289
8.9.2 在Google瀏覽器中加載模型 291
第9章 基于PoseNet的人體姿態(tài)檢測 293
9.1 項目概述 293
9.2 項目初始化 294
9.2.1 添加camera組件 295
9.2.2 添加canvas對象 296
9.3 模型加載 296
9.4 姿態(tài)檢測 297
9.5 預(yù)測結(jié)果繪制 301
9.6 效果展示 302
第 10章 基于Coco SSD的目標(biāo)檢測 303
10.1 項目概述 303
10.2 項目初始化 304
10.2.1 添加camera組件 304
10.2.2 添加canvas對象 305
10.3 模型加載 305
10.4 目標(biāo)檢測 305
10.5 預(yù)測結(jié)果繪制 307
10.6 效果展示 307
第 11章 OCR技術(shù) 309
11.1 OCR技術(shù)概述 310
11.2 OCR工具推薦 311
11.3 微信OCR 315
11.3.1 插件配置信息 316
11.3.2 頁面結(jié)構(gòu)設(shè)計 317
11.3.3 頁面邏輯功能 318
11.4 Google擴(kuò)展程序OCR 319
11.4.1 插件配置信息 319
11.4.2 頁面結(jié)構(gòu)設(shè)計 320
11.4.3 頁面邏輯功能 321
11.4.4 后臺腳本 322
第 12章 神奇的人工智能 324
12.1 個人網(wǎng)站惡意評論檢測 324
12.1.1 項目簡介 324
12.1.2 代碼實現(xiàn) 326
12.1.3 效果展示 330
12.2 微信同聲傳譯 331
12.2.1 項目簡介 331
12.2.2 代碼實現(xiàn) 332
12.2.3 效果展示 333
12.3 Google面館正式營業(yè)了 334
12.4 猜畫小歌 335
12.5 Face Touch Monitor 335
12.6 Teachable Machine 336
12.7 其他案例 337