目錄
前言 . 1
第1 章 TensorFlow 2 簡介 . 7
1.1 TensorFlow 2 的改進 8
1.1.1 Keras API .8
1.1.2 TensorFlow 中的可重用模型 9
1.2 簡化常用操作 10
1.2.1 開源數據 10
1.2.2 使用分布式數據集 10
1.2.3 數據流式處理 11
1.2.4 數據工程 11
1.2.5 遷移學習 12
1.2.6 模型風格 12
1.2.7 監(jiān)視訓練過程 12
1.2.8 分布式訓練 13
1.2.9 提供TensorFlow 模型服務 13
1.2.10 改善訓練體驗 13
1.3 總結 14
第2 章 數據存儲和攝取 15
2.1 使用Python 生成器流式處理數據 16
2.2 使用生成器流式處理文件內容 .18
2.3 JSON 數據結構 .21
2.4 建立文件名模式 22
2.5 將一個CSV 文件劃分為多個CSV 文件23
2.6 使用tf.io 創(chuàng)建文件模式對象 .24
2.7 創(chuàng)建流式數據集對象 .25
2.8 流式處理CSV 數據集 28
2.9 組織圖像數據 29
2.10 使用TensorFlow 圖像生成器31
2.11 流式處理交叉驗證圖像33
2.12 查看調整大小后的圖像 .34
2.13 總結 .36
第3 章 數據預處理 . 39
3.1 準備表格數據進行訓練 39
3.1.1 標記列 .41
3.1.2 將列交互編碼為可能的特征 46
3.1.3 創(chuàng)建交叉驗證數據集48
3.1.4 開始模型訓練過程 49
3.1.5 小結 50
3.2 準備圖像數據進行處理 51
3.2.1 將圖像轉換為固定大小 55
3.2.2 訓練模型 58
3.2.3 小結 60
3.3 準備文本數據進行處理 60
3.3.1 文本分詞 61
3.3.2 創(chuàng)建字典和反轉字典65
3.4 總結 67
第4 章 可重用模型元素 69
4.1 基本TensorFlow Hub 工作流 70
4.2 利用遷移學習完成圖像分類 74
4.2.1 模型需求 74
4.2.2 數據轉換和輸入處理75
4.2.3 利用TensorFlow Hub 實現模型 .77
4.2.4 定義輸出 78
4.2.5 輸出映射到純文本格式 79
4.2.6 評估:創(chuàng)建一個混淆矩陣 .81
4.2.7 小結 83
4.3 使用tf.keras.applications 模塊獲得預訓練模型 83
4.3.1 利用tf.keras.applications 實現模型 83
4.3.2 微調tf.keras.applications 的模型 85
4.4 總結 86
第5 章 流式攝取數據管道 89
5.1 使用text_dataset_from_directory 函數流式處理文本文件 .90
5.1.1 下載文本數據并建立字典 .90
5.1.2 創(chuàng)建數據管道 92
5.1.3 檢查數據集 93
5.1.4 小結 94
5.2 使用flow_from_dataframe 方法利用文件列表流式處理圖像 94
5.2.1 下載圖像并創(chuàng)建目錄95
5.2.2 創(chuàng)建數據攝取管道 96
5.2.3 檢查數據集 99
5.2.4 構建和訓練tf.keras 模型 .100
5.3 使用from_tensor_slices 方法流式處理NumPy 數組 101
5.3.1 加載示例數據和庫 .102
5.3.2 檢查NumPy 數組 103
5.3.3 為NumPy 數據建立輸入管道 104
5.4 總結 .106
第6 章 模型創(chuàng)建風格 107
6.1 使用符號式API .108
6.1.1 加載CIFAR-10 圖像 .108
6.1.2 檢查標簽分布 110
6.1.3 檢查圖像 . 111
6.1.4 構建數據管道 113
6.1.5 批處理數據集進行訓練 114
6.1.6 構建模型 . 115
6.2 理解繼承 118
6.3 使用命令式API .121
6.4 選擇API 124
6.5 使用內置訓練循環(huán) 125
6.6 創(chuàng)建和使用自定義訓練循環(huán) 126
6.6.1 創(chuàng)建循環(huán)的元素 126
6.6.2 在自定義訓練循環(huán)中集成所有元素 128
6.7 總結 .130
第7 章 監(jiān)視訓練過程 133
7.1 回調對象 134
7.1.1 ModelCheckpoint 134
7.1.2 EarlyStopping 142
7.1.3 小結 144
7.2 TensorBoard .144
7.2.1 由本地Jupyter Notebook 調用TensorBoard 150
7.2.2 由本地命令終端調用TensorBoard .151
7.2.3 由Colab Notebook 調用TensorBoard 151
7.2.4 使用TensorBoard 可視化顯示模型過擬合 .152
7.2.5 使用TensorBoard 可視化學習過程 153
7.3 總結 .155
第8 章 分布式訓練 157
8.1 數據并行化 158
8.1.1 異步參數服務器 159
8.1.2 同步全歸約 160
8.2 使用類tf.distribute.MirroredStrategy 161
8.2.1 創(chuàng)建分布式訓練 163
8.2.2 利用tf.distribute.MirroredStrategy 使用GPU 集群 167
8.2.3 小結 173
8.3 Horovod API 173
8.3.1 實現Horovod API 的代碼模式 .174
8.3.2 封裝模型架構 175
8.3.3 封裝數據分離和分片過程 176
8.3.4 工作節(jié)點間的參數同步 177
8.3.5 模型檢查點回調 178
8.3.6 聚合梯度的分布式優(yōu)化器 178
8.3.7 使用Horovod API 的分布式訓練 179
8.4 總結 .186
第9 章 提供TensorFlow 模型服務. 187
9.1 模型序列化 187
9.1.1 將模型保存為h5 格式 195
9.1.2 將模型保存為pb 格式 196
9.1.3 選擇模型格式 198
9.2 TensorFlow Serving .199
9.3 總結 .206
第10 章 改善建模體驗:公平性評估和超參數調優(yōu) . 207
10.1 模型公平性 208
10.1.1 模型訓練和評估 210
10.1.2 公平性評估212
10.1.3 顯示Fairness Indicators.214
10.2 超參數調優(yōu) 221
10.2.1 整數列表作為超參數 222
10.2.2 項選擇作為超參數 223
10.2.3 浮點值作為超參數 223
10.3 端到端超參數調優(yōu) .223
10.4 總結 231