本書基于 TensorFlow.NET 框架,詳細(xì)介紹了.NET 平臺下深度學(xué)習(xí)的基礎(chǔ)原理和應(yīng)用技術(shù),不僅闡述了算法原理,還演示了實踐代碼和運行效果,其中完整示例主要采用的語言為 C#和 F#。全書分為 3 個部分:第一部分介紹了核心 API 的用法和基礎(chǔ)示例,包括數(shù)據(jù)類型、張量、Eager Mode、自動求導(dǎo)、線性回歸、邏輯回歸、tf.data、深度神經(jīng)網(wǎng)絡(luò)和 AutoGraph 機制,讀者可以通過學(xué)習(xí)這一部分內(nèi)容快速入門;第二部分重點演示了.NET Keras 的用法,包括模型、網(wǎng)絡(luò)層、常用 API、模型搭建和模型訓(xùn)練,讀者可以由此掌握主流的深度學(xué)習(xí)方法;第三部分主要是生產(chǎn)應(yīng)用和案例實操,包括 GPU 環(huán)境搭建、自定義數(shù)據(jù)集訓(xùn)練、圖像分類、目標(biāo)檢測、遷移學(xué)習(xí)、自然語言處理、生成對抗網(wǎng)絡(luò)和 F#應(yīng)用案例,每個案例均有完整的代碼。本書涵蓋深度學(xué)習(xí)的方法和實踐,主要面向在校大學(xué)生、生產(chǎn)技術(shù)人員和研究人員,適合具備.NET 編程基礎(chǔ),希望通過.NET 技術(shù)開發(fā)深度學(xué)習(xí)應(yīng)用的讀者閱讀。
仇華:從事機器視覺和機器學(xué)習(xí)開發(fā)的工作14年,目前在TCL擔(dān)任資深軟件工程師。SciSharp Stack開源社區(qū)核心組成員,TensorFlow蘇州社區(qū)創(chuàng)辦者,多年來專注于圖像算法和深度學(xué)習(xí)領(lǐng)域的研究,獲得Google深度學(xué)習(xí)開發(fā)者認(rèn)證、微軟AIM人工智能經(jīng)理證書和蘇州市高級視覺工程師證書。陳海平:從事軟件開發(fā)和系統(tǒng)架構(gòu)設(shè)計的工作16年,目前在美國一家公司擔(dān)任高級軟件架構(gòu)師。創(chuàng)辦SciSharp Stack開源社區(qū),TensorFlow.NET創(chuàng)立和主要維護者,主要業(yè)余時間都投入在開源社區(qū)的項目貢獻(xiàn)。
第一部分 TensorFlow.NET API 入門
第 1 章 TensorFlow.NET 介紹 ................................................................................... 2
1.1 TensorFlow.NET 特性 .................................................................................................. 2
1.2 TensorFlow.NET 開源庫結(jié)構(gòu) ...................................................................................... 3
第 2 章 數(shù)據(jù)類型與張量詳解 ........................................................................................ 6
2.1 數(shù)據(jù)類型 ...................................................................................................................... 6
2.2 張量詳解 ...................................................................................................................... 7
2.3 常量與變量 .................................................................................................................. 8
2.4 字符串常見操作 .........................................................................................................11
2.5 基本張量操作 ............................................................................................................ 14
2.6 維度變換 .................................................................................................................... 19
2.7 合并分割 .................................................................................................................... 22
2.8 廣播機制 .................................................................................................................... 24
第 3 章 Eager Mode 詳解 ............................................................................................ 28
3.1 Eager Mode 說明 ........................................................................................................ 28
3.2 Eager Mode 比較 ........................................................................................................ 29
3.3 Eager Mode 數(shù)值運算 ................................................................................................ 31
3.4 Eager Mode 張量降維運算 ........................................................................................ 32
3.5 Eager Mode 矩陣運算 ................................................................................................ 35
3.6 print 與 tf.print 特性對比 ........................................................................................... 37
第 4 章 自動求導(dǎo)原理與應(yīng)用 ....................................................................................... 44
4.1 機器學(xué)習(xí)中的求導(dǎo) .................................................................................................... 44
4.2 簡單函數(shù)求導(dǎo) ............................................................................................................ 45
4.3 復(fù)雜函數(shù)求偏導(dǎo) ........................................................................................................ 46
第 5 章 線性回歸實操 ...................................................................................................... 48
5.1 線性回歸問題 ............................................................................................................ 48
5.2 TensorFlow 下的線性回歸 ........................................................................................ 50
5.3 C#和 Python 的性能比較 .......................................................................................... 54
第 6 章 MNIST 手寫字符分類邏輯回歸 ............................................................................ 56
6.1 經(jīng)典的 MNIST 手寫字符分類問題 .......................................................................... 56
6.2 邏輯回歸代碼實操 .................................................................................................... 63
第 7 章 tf.data 數(shù)據(jù)集創(chuàng)建與預(yù)處理 ................................................................................ 77
7.1 tf.data 介紹 ................................................................................................................. 77
7.2 tf.data 數(shù)據(jù)集創(chuàng)建 ..................................................................................................... 78
7.3 tf.data 數(shù)據(jù)預(yù)處理 ..................................................................................................... 81
7.4 tf.data 數(shù)據(jù)使用 ......................................................................................................... 89
第 8 章 深度神經(jīng)網(wǎng)絡(luò)實踐 ............................................................................................................ 91
8.1 深度神經(jīng)網(wǎng)絡(luò)介紹 .................................................................................................... 91
8.2 TensorFlow.NET 代碼實操 1:DNN with Eager ...................................................... 93
8.3 TensorFlow.NET Keras 模型搭建的 3 種方式 ........................................................ 105
8.4 TensorFlow.NET 代碼實操 2:DNN with Keras .....................................................116
第 9 章 AutoGraph 機制詳解 .............................................................................................. 131
9.1 AutoGraph 機制說明 ............................................................................................... 131
9.2 AutoGraph 機制原理 ............................................................................................... 144
9.3 AutoGraph 編碼規(guī)范 ............................................................................................... 146
第二部分 .NET Keras 簡明教程
第 10 章 Keras 簡要介紹 ................................................................................................... 149
10.1 Keras 特性 .............................................................................................................. 149
10.2 Keras 版本說明 ...................................................................................................... 150
第 11 章 模型與層 ................................................................................................................... 152
11.1 Keras 常用的模型與層 .......................................................................................... 152
11.2 自定義層 ................................................................................................................ 155
11.3 自定義模型 ............................................................................................................ 157
11.4 模型常用 API 概述 ................................................................................................ 160
第 12 章 Keras 常用 API 說明 ........................................................................................... 167
12.1 回調(diào)函數(shù) ................................................................................................................ 167
12.2 數(shù)據(jù)集預(yù)處理 ........................................................................................................ 169
12.3 優(yōu)化器 .................................................................................................................... 172
12.4 損失函數(shù) ................................................................................................................ 175
12.5 評估指標(biāo) ................................................................................................................ 180
第 13 章 Keras 搭建模型的 3 種方式 ............................................................................ 184
13.1 Sequential API 方式 ............................................................................................... 185
13.2 Functional API 方式 ............................................................................................... 186
13.3 自定義模型 ............................................................................................................ 188
第 14 章 Keras 模型訓(xùn)練 ..................................................................................................... 194
14.1 內(nèi)置 fit 訓(xùn)練 ........................................................................................................... 194
14.2 自定義訓(xùn)練 ............................................................................................................ 196
第三部分 生產(chǎn)應(yīng)用與案例
第 15 章 CPU 和 GPU 環(huán)境下的 TensorFlow.NET 應(yīng)用 ........................................... 201
15.1 CPU 和 GPU 環(huán)境搭建及安裝 .............................................................................. 201
15.2 TensorFlow.NET 的圖像利器 SharpCV ................................................................ 221
第 16 章 工業(yè)生產(chǎn)環(huán)境應(yīng)用案例 ......................................................................................... 228
16.1 工業(yè)機器視覺領(lǐng)域應(yīng)用 ........................................................................................ 228
16.2 工業(yè)時間序列預(yù)測領(lǐng)域應(yīng)用 ................................................................................ 247
第 17 章 在 C#下使用 TensorFlow.NET 訓(xùn)練自己的數(shù)據(jù)集 .......................................... 254
17.1 項目說明 ................................................................................................................ 254
17.2 模型介紹 ................................................................................................................ 254
17.3 數(shù)據(jù)集說明 ............................................................................................................ 256
17.4 代碼說明 ................................................................................................................ 256
17.5 總結(jié) ........................................................................................................................ 274
第 18 章 視覺圖像分類 ....................................................................................................... 275
18.1 卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)圖像分類 ................................................................................ 277
18.2 卷積神經(jīng)網(wǎng)絡(luò)詳解 ................................................................................................ 287
18.3 深入了解卷積神經(jīng)網(wǎng)絡(luò) ........................................................................................ 319
第 19 章 視覺目標(biāo)檢測 ................................................................................................................ 347
19.1 視覺目標(biāo)檢測原理簡述 ........................................................................................ 347
19.2 YOLO v3 模型推理實踐 ....................................................................................... 360
19.3 YOLO v3 模型訓(xùn)練實踐 ....................................................................................... 374
第 20 章 遷移學(xué)習(xí)應(yīng)用 ................................................................................................................ 393
20.1 遷移學(xué)習(xí)原理簡述 ................................................................................................ 393
20.2 Inception v3 網(wǎng)絡(luò) ................................................................................................... 396
20.3 遷移學(xué)習(xí)代碼實操 ................................................................................................ 400
第 21 章 自然語言處理 ................................................................................................................ 426
21.1 自然語言處理簡述 ................................................................................................ 426
21.2 詞向量 .................................................................................................................... 429
21.3 文本分類代碼實操 ................................................................................................ 446
第 22 章 生成對抗網(wǎng)絡(luò) ................................................................................................................ 467
22.1 生成對抗網(wǎng)絡(luò)簡述 ................................................................................................ 467
22.2 生成對抗網(wǎng)絡(luò)實戰(zhàn)案例 ........................................................................................ 479
第 23 章 F#應(yīng)用案例 .................................................................................................................... 500
23.1 F#簡明教程 ............................................................................................................ 500
23.2 F#案例實踐 ............................................................................................................ 513
參考文獻(xiàn) ............................................................................................................................................ 534