圖解 TensorFlow 2 初學篇:實作 tf.keras + Colab 雲端、深度學習、人工智慧、影像辨識
內容描述
【本書特色】
繼台灣人工智慧領域最暢銷著作《TensorFlow+Keras深度學習人工智慧實務應用》之後,大數據分析大師、暢銷名作家 林大貴最新力作《圖解TensorFlow 2初學篇:實作tf.keras + Colab雲端、深度學習、人工智慧、影像辨識》嶄新登場!解決學習TensorFlow 2的障礙,輕鬆進入深度學習與人工智慧領域!
✪漸進式系統化學習TensorFlow 2
✪圖解輕鬆理解深度學習與人工智慧
✪Step by Step實作快速上手
✪Colab節省訓練模型的時間與金錢
✪養成深度學習模型直覺式的理解
✪學會TensorFlow 2的最新技術
✪學會影像辨識模型從原理到實作
✪學會訓練深度學習模型的實務經驗
【內容簡介】
TensorFlow 2是最受歡迎的「人工智慧與深度學習」平台,學會了TensorFlow 2,對於你的現有工作提升與未來轉職都有很大的幫助,然而多數人在學習過程中卻遇到了很多困難,而本書能解決學習TensorFlow 2的障礙。
✪漸進式系統化學習TensorFlow 2
本書是《圖解TensorFlow 2》系列叢書的第一本初學篇,本系列叢書主要是幫助初學者解決進入此領域的障礙,循序漸進有系統地學習「TensorFlow 2與人工智慧、深度學習」,本系列叢書詳細說明於本書序言。
✪圖解輕鬆理解深度學習與人工智慧
很多讀者都是在百忙之中抽空學習,本書以很多的「圖解」來解說深度學習原理與程式系統的架構圖。由於「一張圖勝過千言萬語」,比起文字的說明,「圖解」更可讓原理易懂且印象深刻。
✪Step by Step實作快速上手
你只需要有Python基礎,依照本書範例程式碼Step by Step的詳細解說,便可讓你快速學會實作不同的深度學習模型。
✪節省訓練模型的時間與金錢
本書介紹Google Colab,只需要有Google帳號與瀏覽器,就能夠免費使用GPU訓練模型,加快訓練速度十多倍以上,可節省你採購與安裝顯示卡的昂貴費用。
✪培養「深度學習模型」直覺式的理解
本書介紹玩TensorFlow Playground理解深度學習的原理。透過實際示範,讓你眼見為憑(有圖有真相),例如:什麼是「神經元」?什麼是「過度擬合」(overfitting)?並了解如何設定超參數等。
✪學會TensorFlow 2的最新技術
本書介紹TensorFlow 2的高階API tf.keras建立多層感知器(MLP)與卷積神經網路(CNN) 模型,能簡化模型建立與訓練,還介紹三種建立模型的方式以及四種儲存模型方式。
✪學會影像辨識從原理到實作
本書介紹影像辨識原理,以視覺化顯示CNN模型每一層特徵圖,讓你理解卷積層與池化層如何提取特徵。多個範例程式實作了影像預處理、建立模型、訓練、測試模型、預測結果、儲存模型。
✪學會訓練深度學習模型的實務經驗
本書教你使用DropOut、Regularization、BatchNormalization、EarlyStop、ImageDataAugment等方法,可有效降低overfitting與提高準確率。將Cifar CNN模型原本準確率69%大幅提高至90%。
目錄大綱
|Chapter 01| 人工智慧、機器學習、深度學習介紹
1.1 人工智慧介紹
1.2 機器學習介紹
1.3 深度學習介紹
1.4 結論
|Chapter 02| 深度學習的原理介紹
2.1 張量運算模擬:一個輸入神經元與一個接收神經元
2.2 張量運算模擬:多個輸入神經元與一個接收神經元
2.3 張量運算模擬:多個輸入神經元與多個接收神經元
2.4 梯度下降法進行訓練
2.5 反向傳播演算法訓練神經網路
2.6 結論
|Chapter 03| 玩TensorFlow Playground理解深度學習神經網路
3.1 資料設定
3.2 建立神經網路模型
3.3 訓練神經網路模型
3.4 為何要使用神經網路模型
3.5 調整模型設計超參數:隱藏層數
3.6 調整模型設計超參數:激活函數
3.7 調整模型訓練超參數:Learning Rate
3.8 TensorFlow Playground示範overfitting
3.9 加入regularization降低overfitting
3.10 結論
|Chapter 04| TensorFlow 2 的演進與新功能
4.1 TensorFlow 1介紹
4.2 Keras簡介
4.3 TensorFlow 2的主要改變
4.4 TensorFlow 2特色
4.5 TensorFlow 2適合初學者與專家
4.6 TensorFlow 2新資料處理方式
4.7 結論
|Chapter 05| Google Colab介紹與安裝本書範例程式
5.1 Google Colab介紹
5.2 開始使用Google Colab
5.3 在Google雲端硬碟建立Colab筆記本
5.4 將Google雲端硬碟的Colab筆記本下載至本機
5.5 將Google 雲端硬碟資料夾下載至本機
5.6 安裝本書範例程式於個人Google雲端硬碟
5.7 切換Google Colab為英文版
5.8 結論
|Chapter 06| Google Colab筆記本編輯程式碼儲存格
6.1 開啟本書範例程式
6.2 儲存格的基本編輯功能
6.3 複製或剪下與貼上單一儲存格
6.4 複製或剪下與貼上多個儲存格
6.5 尋找與取代功能介紹
6.6 Colab筆記本編輯器設定
6.7 程式碼完成功能
6.8 草稿程式碼儲存格功能
6.9 分頁中鏡像儲存格功能
6.10 查看變數
6.11 結論
|Chapter 07| Google Colab筆記本編輯文字儲存格
7.1 新增與編輯文字儲存格
7.2 文字儲存格工具列
7.3 編輯文字儲存格:粗體字、斜體字
7.4 編輯文字儲存格:標題
7.5 文字儲存格:格式化為程式碼功能
7.6 文字儲存格:顯示影像
7.7 其他編輯文字儲存格功能
7.8 結論
|Chapter 08| Google Colab筆記本軟硬體執行環境
8.1 查看虛擬機執行環境
8.2 使用magic 語法確保執行環境為TensorFlow 2.x版本
8.3 使用magic 語法切換為TensorFlow 1.x版本
8.4 結論
|Chapter 09| tf.keras下載並預處理MNIST手寫數字資料集
9.1 下載與讀取mnist資料
9.2 查看mnist 訓練與測試資料
9.3 顯示單筆影像與標籤
9.4 顯示多筆影像與標籤
9.5 結論
|Chapter 10| 建立多層感知器模型辨識手寫數字
10.1 多層感知器介紹
10.2 建立MNIST MLP模型決定每一層神經元個數
10.3 MNIST MLP模型公式與激活函數
10.4 損失函數計算誤差
10.5 反向傳播演算法訓練MNIST MLP模型
10.6 Mnist資料預處理介紹
10.7 結論
|Chapter 11| tf.keras多層感知器辨識手寫數字
11.1 資料預處理
11.2 建立模型
11.3 訓練驗證模型
11.4 判斷模型的訓練結果
11.5 測試模型
11.6 進行預測
11.7 顯示混淆矩陣
11.8 找出預測錯誤的影像
11.9 MLP模型隱藏層增加為1000個神經元
11.10 MLP模型加入DropOut功能以降低overfitting
11.11 MLP模型加入2個隱藏層
11.12 結論
|Chapter 12| 執行Google Colab筆記本程式碼
12.1 「全部執行」儲存格程式碼
12.2 「執行上方的儲存格」程式碼
12.3 「執行聚焦的儲存格」功能
12.4 「執行下方的儲存格」程式碼
12.5 「執行選取範圍」儲存格程式碼
12.6 尚未執行程式前不能使用的選單功能
12.7 「中斷執行」儲存格程式碼功能
12.8 重新啟動執行階段
12.9 恢復原廠設定的執行階段
12.10 「執行階段」選單功能整理
12.11 結論
|Chapter 13| 卷積神經網路原理介紹
13.1 卷積神經網路如何提取特徵
13.2 卷積運算提取特徵
13.3 卷積運算Padding參數設定
13.4 卷積層的組成
13.5 卷積層:單一輸入/多輸出
13.6 池化層
13.7 卷積層:多輸入/多輸出
13.8 卷積層+ 池化層
|Chapter 14| 使用tf.keras程式碼建立Mnist CNN模型
14.1 建立卷積層1
14.2 建立池化層1
14.3 建立卷積層2
14.4 建立池化層2
14.5 建立分類神經網路
14.6 結論
|Chapter 15| 建立Mnist CNN模型使用GPU進行訓練
15.1 資料預處理
15.2 建立卷積神經網路模型辨識手寫數字
15.3 訓練驗證模型
15.4 預設以CPU執行訓練
15.5 設定以GPU執行訓練
15.6 查看訓練過程
15.7 測試模型:評估模型準確率
15.8 結論
|Chapter 16| Colab硬體加速器與TPU進行訓練
16.1 查看筆記本是否有開啟硬體加速器
16.2 TPU張量處理器介紹
16.3 以TPU執行訓練減少訓練時間
16.4 結論
|Chapter 17| 視覺化顯示mnist CNN的特徵圖
17.1 建立產生mnist 特徵圖的模型
17.2 將影像輸入模型來產生特徵圖
17.3 查看特徵圖
17.4 顯示每一層的全部特徵圖
17.5 顯示模型訓練前後特徵圖
17.6 結論
|Chapter 18| Cifar-10影像辨識資料集介紹
18.1 CIFAR-10資料集介紹
18.2 下載與預處理CIFAR-10資料
18.3 查看CIFAR-10影像資料
18.4 查看CIFAR-10的label標籤資料
18.5 查看多筆CIFAR-10資料
18.6 影像資料預處理
18.7 label標籤資料預處理
18.8 結論
|Chapter 19| 使用tf.keras程式碼建立Cifar CNN 模型
19.1 建立卷積層1
19.2 建立池化層1
19.3 卷積層2
19.4 建立池化層2
19.5 建立分類神經網路
19.6 結論
|Chapter 20| 建立Cifar CNN模型使用GPU加快訓練
20.1 資料預處理
20.2 建立模型
20.3 訓練驗證模型
20.4 判斷模型的訓練結果
20.5 測試模型
20.6 進行預測
20.7 顯示混淆矩陣
20.8 以heapmap顯示混淆矩陣
20.9 找出預測錯誤的影像類別
20.10 結論
Chapter 21 視覺化顯示Cifar CNN的特徵圖
21.1 建立產生Cifar特徵圖的模型
21.2 將影像輸入模型來產生特徵圖
21.3 查看預測結果(特徵圖)
21.4 顯示每一層的全部特徵圖
21.5 顯示訓練前後特徵圖
21.6 結論
|Chapter 22| Google Colab免費版與付費版介紹
22.1 Google Colab不同版本的功能整理
22.2 Google Colab不同版本的選擇建議
22.3 Colab免費版使用GPU或TPU的限制
22.4 Google Colab Pro介紹
22.5 Google Colab Pro+介紹
22.6 取消訂閱Colab Pro或Colab Pro+
22.7 結論
|Chapter 23| 將Cifar CNN模型加深以提升準確率
23.1 模型增加更多卷積與池化層來提高準確率
23.2 增加模型深度產生的問題原因與解決方式
23.3 讓程式執行結果可再現性
23.4 模型加深(1卷積層+1池化層)
23.5 模型加深3個block(2卷積層+1池化層)
23.6 加入regularization以降低overfitting
23.7 加入DropOut層以降低overfitting
23.8 結論
Chapter 24 加入EarlyStopping以降低overfitting
24.1 Early Stopping 介紹
24.2 程式碼加入EarlyStopping與ModelCheckpoint
24.3 執行model.fit進行訓練
24.4 結論
|Chapter 25| 影像資料擴增功能降低overfitting與提升準確率
25.1 影像資料擴增功能介紹
25.2 加入影像資料擴增功能降低overfitting
25.3 結論
|Chapter 26| 加入Batch Normalization以提高準確率
26.1 模型加深但是準確率降低
26.2 Batch Normalization 介紹
26.3 BatchNormalization層的模型參數
26.4 BatchNormalization的優點
26.5 模型加入BatchNormalization功能
26.6 BatchNormalizaton取代DropOut功能
26.7 模型加入BatchNormalizaton後加深模型
26.8 模型加入BatchNormalizaton後進一步加深模型
26.9 結論
|Chapter 27| Functional API建立模型
27.1 Functional API建立MLP模型
27.2 Functional API建立Cifar CNN模型
27.3 Functional API建立min ResNet模型
27.4 結論
|Chapter 28| Model Subclassing API建立模型
28.1 Model Subclassing API介紹
28.2 Model Subclassing API建立MLP模型
28.3 Model Subclassing API建立CNN模型
28.4 結論
|Chapter 29| TensorFlow 2各種建立模型API儲存模型
29.1 TensorFlow 2儲存模型方式介紹
29.2 Sequential API模型儲存與複製雲端硬碟介紹
29.3 Model Subclassing API模型儲存與複製雲端硬碟介紹
29.4 建立函數:模型儲存與複製雲端硬碟
29.5 Functional API模型儲存與複製雲端硬碟
29.6 Model Subclassing API模型儲存與複製雲端硬碟
29.7 儲存準確率最高的Cifar CNN模型
29.8 結論
|Chapter 30| TensorFlow 2各種建立模型API載入模型進行預測
30.1 載入全模型(HDF5格式)預測下載的圖片
30.2 載入全模型(HDF5格式)預測上傳的圖片
30.3 載入全模型(SavedModel格式)預測下載的圖片
30.4 載入模型結構與模型參數預測下載的圖片
30.5 Sequential API 建立模型並載入模型參數
30.6 Model Subclassing API建立模型並載入模型參數
30.7 結論
|Chapter 31| 使用自訂程式碼片段快速建立模型程式碼
31.1 插入系統內建的程式碼片段
31.2 自訂程式碼片段
31.3 設定Google Colab網站
31.4 插入「自訂程式碼片段」
31.5 結論
作者介紹
大數據分析大師、暢銷名作家 林大貴
作者從事IT產業多年,系統設計、網站開發、企業顧問、數位行銷、商業智慧、大數據、機器學習等領域,具備豐富的實務經驗。目前從事大數據分析、機器學習、深度學習與人工智慧等相關的研究、教學、資策會講師、中華電信學院講師。
【本書facebook社團】
https://www.facebook.com/groups/TensorflowKeras/
【本書部落格】
https://tensorflowkeras.blogspot.com/
【本書facebook粉絲團】