本書旨在介紹智能前端開發(fā)和深度學(xué)習(xí)。本書首先介紹了相關(guān)的開發(fā)環(huán)境、前端開發(fā)基礎(chǔ)知識(shí)、深度學(xué)習(xí)基礎(chǔ)知識(shí)、前端智能框架和卷積神經(jīng)網(wǎng)絡(luò),然后講述了線性回歸、logistical 回歸、XOR 問題、人體姿態(tài)檢測(cè):目標(biāo)檢測(cè)、光學(xué)字符識(shí)別等方面的案例,最后講解了前端智能化案例。
本書適合 Web 前端開發(fā)人員、人工智能開發(fā)人員閱讀,也可作為計(jì)算機(jī)相關(guān)專業(yè)師生的參考用書。
1.深入淺出,通俗易懂
基于TensorFlow.js講述如何在瀏覽器端開發(fā)人工智能應(yīng)用,深入淺出地介紹了前端開發(fā)、深度學(xué)習(xí)的相關(guān)知識(shí),幫助讀者提升智能前端開發(fā)水平。
2.實(shí)用工具書,針對(duì)性強(qiáng)
從環(huán)境配置出發(fā),詳細(xì)介紹了卷積神經(jīng)網(wǎng)絡(luò)與移動(dòng)端常用的幾個(gè)網(wǎng)絡(luò)模型。
3.實(shí)例豐富,參考性強(qiáng)
提供大量實(shí)際案例,具有較高參考價(jià)值。
4.適用性強(qiáng),具有廣泛性
適配新版本以及多類型設(shè)備,具有廣泛參考性。
石璞東,西安建筑科技大學(xué)碩士研究生,研究方向包括機(jī)器學(xué)習(xí)、Web開發(fā),擔(dān)任百度飛槳領(lǐng)航團(tuán)金牌團(tuán)長(zhǎng)和hahaWebsite網(wǎng)站站長(zhǎng)。
吳萌,西安建筑科技大學(xué)信息與控制工程學(xué)院副教授,碩士生導(dǎo)師,美國(guó)俄亥俄州立大學(xué)訪問學(xué)者,中國(guó)圖象圖形學(xué)學(xué)會(huì)數(shù)字文化遺產(chǎn)專委會(huì)委員。
王慧琴,西安建筑科技大學(xué)信息與控制工程學(xué)院副院長(zhǎng)、教授、博士生導(dǎo)師,通信與信息系統(tǒng)研究所所長(zhǎng),陜西省圖象圖形學(xué)學(xué)會(huì)理事,中國(guó)圖象圖形學(xué)學(xué)會(huì)圖像應(yīng)用與系統(tǒng)集成專委會(huì)委員,中國(guó)圖象圖形學(xué)學(xué)會(huì)數(shù)字文化遺產(chǎn)專委會(huì)委員。
目 錄
第 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 注冊(cè)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 背景知識(shí)概述 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 頁(yè)面描述文件 72
2.7.3 頁(yè)面樣式文件 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 操作和計(jì)算圖 116
3.3.4 自動(dòng)微分和梯度帶 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 模型評(píng)估 160
4.3.5 模型轉(zhuǎn)換 164
4.4 TensorFlow.js Vis庫(kù)詳解 166
4.4.1 Visor接口方法介紹 167
4.4.2 模型可視化 168
4.4.3 數(shù)據(jù)可視化 173
4.4.4 模型評(píng)價(jià)指標(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í)的卷積神經(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 案例簡(jiǎn)介 207
6.1.2 代碼實(shí)現(xiàn) 207
6.2 logistical回歸 211
6.2.1 案例簡(jiǎn)介 211
6.2.2 代碼實(shí)現(xiàn) 211
6.3 XOR問題 215
6.3.1 案例簡(jiǎn)介 215
6.3.2 代碼實(shí)現(xiàn) 216
6.4 加載與應(yīng)用MobileNet模型 220
6.4.1 案例簡(jiǎn)介 220
6.4.2 代碼實(shí)現(xiàn) 220
6.5 《你畫我猜》(MNIST手寫數(shù)字版) 224
6.5.1 案例簡(jiǎn)介 224
6.5.2 代碼實(shí)現(xiàn) 224
第7章 TensorFlow官方數(shù)據(jù)集實(shí)戰(zhàn) 231
7.1 boston_housing數(shù)據(jù)集與實(shí)戰(zhàn)案例 231
7.1.1 數(shù)據(jù)集介紹 231
7.1.2 房?jī)r(jià)預(yù)測(cè)實(shí)戰(zhàn) 232
7.2 與CIFAR-10數(shù)據(jù)集相關(guān)的實(shí)戰(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)的實(shí)戰(zhàn)案例 248
7.3.1 數(shù)據(jù)集介紹 248
7.3.2 數(shù)據(jù)集展示 249
7.4 與MNIST數(shù)據(jù)集相關(guān)的實(shí)戰(zhàn)案例 253
7.4.1 數(shù)據(jù)集介紹 253
7.4.2 數(shù)據(jù)集展示 253
7.5 與Fashion_MNIST數(shù)據(jù)集相關(guān)實(shí)戰(zhàn)案例 255
7.5.1 數(shù)據(jù)集介紹 255
7.5.2 數(shù)據(jù)集加載 256
7.6 基于CNN的MNIST手寫數(shù)字識(shí)別 257
7.6.1 自定義網(wǎng)絡(luò)模型 257
7.6.2 微信小程序部署 261
第8章 基于CNN的常見水果分類識(shí)別 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è)計(jì) 284
8.6 模型配置 284
8.7 模型訓(xùn)練 285
8.8 模型評(píng)估 286
8.9 模型部署 289
8.9.1 在微信小程序中加載模型 289
8.9.2 在Google瀏覽器中加載模型 291
第9章 基于PoseNet的人體姿態(tài)檢測(cè) 293
9.1 項(xiàng)目概述 293
9.2 項(xiàng)目初始化 294
9.2.1 添加camera組件 295
9.2.2 添加canvas對(duì)象 296
9.3 模型加載 296
9.4 姿態(tài)檢測(cè) 297
9.5 預(yù)測(cè)結(jié)果繪制 301
9.6 效果展示 302
第 10章 基于Coco SSD的目標(biāo)檢測(cè) 303
10.1 項(xiàng)目概述 303
10.2 項(xiàng)目初始化 304
10.2.1 添加camera組件 304
10.2.2 添加canvas對(duì)象 305
10.3 模型加載 305
10.4 目標(biāo)檢測(cè) 305
10.5 預(yù)測(cè)結(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 頁(yè)面結(jié)構(gòu)設(shè)計(jì) 317
11.3.3 頁(yè)面邏輯功能 318
11.4 Google擴(kuò)展程序OCR 319
11.4.1 插件配置信息 319
11.4.2 頁(yè)面結(jié)構(gòu)設(shè)計(jì) 320
11.4.3 頁(yè)面邏輯功能 321
11.4.4 后臺(tái)腳本 322
第 12章 神奇的人工智能 324
12.1 個(gè)人網(wǎng)站惡意評(píng)論檢測(cè) 324
12.1.1 項(xiàng)目簡(jiǎn)介 324
12.1.2 代碼實(shí)現(xiàn) 326
12.1.3 效果展示 330
12.2 微信同聲傳譯 331
12.2.1 項(xiàng)目簡(jiǎn)介 331
12.2.2 代碼實(shí)現(xiàn) 332
12.2.3 效果展示 333
12.3 Google面館正式營(yíng)業(yè)了 334
12.4 猜畫小歌 335
12.5 Face Touch Monitor 335
12.6 Teachable Machine 336
12.7 其他案例 337