TensorFlow機器學習項目實戰 (Building Machine Learning Projects with TensorFlow)
內容描述
TensorFlow是Google所主導的機器學習框架,也是機器學習領域研究和應用的熱門對象。
《TensorFlow機器學習項目實戰》主要介紹如何使用TensorFlow庫實現各種各樣的模型,旨在降低學習門檻,並為讀者解決問題提供詳細的方法和指導。《TensorFlow機器學習項目實戰》全書共10章,分別介紹了TensorFlow基礎知識、聚類、線性回歸、邏輯回歸、不同的神經網絡、規模化運行模型以及庫的應用技巧。
《TensorFlow機器學習項目實戰》適合想要學習和瞭解TensorFlow和機器學習的讀者閱讀參考。如果讀者俱備一定的C++和Python的經驗,將能夠更加輕鬆地閱讀和學習本書。
目錄大綱
第1章探索和轉換數據1
1.1 TensorFlow的主要數據結構—張量1
1.1.1張量的屬性—階、形狀和類型1
1.1.2創建新的張量3
1.1.3動手工作—與TensorFlow交互4
1.2處理計算工作流—TensorFlow的數據流圖5
1.2.1建立計算圖5
1.2.2數據供給6
1.2.3變量6
1.2.4保存數據流圖6
1.3運行我們的程序—會話8
1.4基本張量方法8
1.4.1簡單矩陣運算8
1.4.2序列11
1.4.3張量形狀變換12
1.4.4數據流結構和結果可視化—TensorBoard 14
1.5從磁盤讀取信息18
1.5.1列表格式—CSV 18
1.5.2讀取圖像數據19
1.5.3加載和處理圖像20
1.5.4讀取標準TensorFlow格式21
1.6小結21
第2章聚類22
2.1從數據中學習—無監督學習22
2.2聚類的概念22
2.3 k均值23
2.3.1 k均值的機制23
2.3.2算法迭代判據23
2.3.3 k均值算法拆解24
2.3.4 k均值的優缺點25
2.4 k最近鄰25
2.4.1 k最近鄰算法的機制26
2.4.2 k-nn的優點和缺點26
2.5有用的庫和使用示例27
2.5.1 matplotlib繪圖庫27
2.5.2 scikit-learn數據集模塊28
2.5.3人工數據集類型28
2.6例1—對人工數據集的k均值
聚類29
2.6.1數據集描述和加載29
2.6.2模型架構30
2.6.3損失函數描述和優化循環31
2.6.4停止條件31
2.6.5結果描述31
2.6.6每次迭代中的質心變化32
2.6.7完整源代碼32
2.6.8 k均值用於環狀數據集34
2.7例2—對人工數據集使用最近鄰算法36
2.7.1數據集生成36
2.7.2模型結構36
2.7.3損失函數描述37
2.7.4停止條件37
2.7.5結果描述37
2.7.6完整源代碼37
2.8小結39
第3章線性回歸40
3.1單變量線性模型方程40
3.2選擇損失函數41
3.3最小化損失函數42
3.3.1最小方差的全局最小值42
3.3.2迭代方法:梯度下降42
3.4示例部分43
3.4.1 TensorFlow中的優化方法—訓練模塊43
3.4.2 tf.train.Optimizer類43
3.4.3其他Optimizer實例類型44
3.5例1—單變量線性回歸44
3.5.1數據集描述45
3.5.2模型結構45
3.5.3損失函數描述和Optimizer 46
3.5.4停止條件48
3.5.5結果描述48
3.5.6完整源代碼49
3.6例2—多變量線性回歸51
3.6.1有用的庫和方法51
3.6.2 Pandas庫51
3.6.3數據集描述51
3.6.4模型結構53
3.6.5損失函數和Optimizer 54
3.6.6停止條件55
3.6.7結果描述55
3.6.8完整源代碼56
3.7小結57
第4章邏輯回歸58
4.1問題描述58
4.2 Logistic函數的逆函數—Logit函數59
4.2.1伯努利分佈59
4.2.2聯繫函數60
4.2.3 Logit函數60
4.2.4對數機率函數的逆函數—Logistic函數60
4.2.5多類分類應用—Softmax回歸62
4.3例1—單變量邏輯回歸64
4.3.1有用的庫和方法64
4.3 .2數據集描述和加載65
4.3.3模型結構67
4.3.4損失函數描述和優化器循環67
4.3.5停止條件68
4.3.6結果描述68
4.3.7完整源代碼69
4.3.8圖像化表示71
4.4例2—基於skflow單變量邏輯回歸72
4.4.1有用的庫和方法72
4.4.2數據集描述72
4.4.3模型結構72
4.4.4結果描述73
4.4.5完整源代碼74
4.5小結74
第5章簡單的前向神經網絡75
5.1基本概念75
5.1.1人工神經元75
5.1.2神經網絡層76
5.1.3有用的庫和方法78
5.2例1—非線性模擬數據回歸79
5.2.1數據集描述和加載79
5.2.2數據集預處理80
5.2.3模型結構—損失函數描述80
5.2.4損失函數優化器80
5.2.5準確度和收斂測試80
5.2.6完整源代碼80
5.2.7結果描述81
5.3例2—通過非線性回歸,對汽車燃料效率建模82
5.3.1數據集描述和加載82
5.3.2數據預處理83
5.3.3模型架構83
5.3.4準確度測試84
5.3.5結果描述84
5.3.6完整源代碼84
5.4例3—多類分類:葡萄酒分類86
5.4.1數據集描述和加載86
5.4.2數據集預處理86
5.4.3模型架構87
5.4.4損失函數描述87
5.4.5損失函數優化器87
5.4.6收斂性測試88
5.4.7結果描述88
5.4.8完整源代碼88
5.5小結89
第6章卷積神經網絡90
6.1卷積神經網絡的起源90
6.1.1卷積初探90
6.1.2降採樣操作—池化95
6.1.3提高效率—dropout操作98
6.1.4卷積類型層構建辦法99
6.2例1—MNIST數字分類100
6.2.1數據集描述和加載100
6.2.2數據預處理102
6.2.3模型結構102
6.2.4損失函數描述103
6.2.5損失函數優化器103
6.2.6準確性測試103
6.2.7結果描述103
6.2.8完整源代碼104
6.3例2—CIFAR10數據集的圖像分類106
6.3.1數據集描述和加載107
6.3.2數據集預處理107
6.3.3模型結構108
6.3.4損失函數描述和優化器108
6.3.5訓練和準確性測試108
6.3.6結果描述108
6.3.7完整源代碼109
6.4小結110
第7章循環神經網絡和LSTM 111
7.1循環神經網絡111
7.1.1梯度爆炸和梯度消失112
7.1.2 LSTM神經網絡112
7.1.3其他RNN結構116
7.1.4 TensorFlow LSTM有用的類和方法116
7.2例1—能量消耗、單變量時間序列數據預測117
7.2.1數據集描述和加載117
7.2.2數據預處理118
7.2.3模型結構119
7.2.4損失函數描述121
7.2.5收斂檢測121
7.2.6結果描述122
7.2.7完整源代碼122
7.3例2—創作巴赫風格的曲目125
7.3.1字符級模型125
7.3.2字符串序列和概率表示126
7.3.3使用字符對音樂編碼—ABC音樂格式126
7.3.4有用的庫和方法128
7.3 .5數據集描述和加載129
7.3.6網絡訓練129
7.3.7數據集預處理130
7.3.8損失函數描述131
7.3.9停止條件131
7.3.10結果描述131
7.3.11完整源代碼132
7.4小結137
第8章深度神經網絡138
8.1深度神經網絡的定義138
8.2深度網絡結構的歷史變遷138
8.2.1 LeNet 5 138
8.2.2 Alexnet 139
8.2.3 VGG模型139
8.2.4第一代Inception模型140
8.2 .5第二代Inception模型141
8.2.6第三代Inception模型141
8.2.7殘差網絡(ResNet) 142
8.2.8其他的深度神經網絡
結構143
8.3例子—VGG藝術風格轉移143
8.3.1有用的庫和方法143
8.3.2數據集描述和加載143
8.3.3數據集預處理144
8.3.4模型結構144
8.3.5損失函數144
8.3.6收斂性測試145
8.3.7程序執行145
8.3.8完整源代碼146
8.4小結153
第9章規模化運行模型—GPU和
服務154
9.1 TensorFlow中的GPU支持154
9.2打印可用資源和設備參數155
9.2.1計算能力查詢155
9.2.2選擇CPU用於計算156
9.2.3設備名稱156
9.3例1—將一個操作指派給
GPU 156
9.4例2—並行計算Pi的數值157
9.4.1實現方法158
9.4.2源代碼158
9.5分佈式TensorFlow 159
9.5.1分佈式計算組件159
9.5.2創建TensorFlow集群160
9.5.3集群操作—發送計算方法
到任務161
9.5.4分佈式編碼結構示例162
9.6例3—分佈式Pi計算163
9.6.1服務器端腳本163
9.6.2客戶端腳本164
9.7例4—在集群上運行分佈式
模型165
9.8小結168
第10章庫的安裝和其他技巧169
10.1 Linux安裝169
10.1.1安裝要求170
10.1.2 Ubuntu安裝準備(安裝操作的
前期操作) 170
10.1.3 Linux下通過pip安裝
TensorFlow 170
10.1.4 Linux下從源碼安裝
TensorFlow 175
10.2 Windows安裝179
10.2.1經典的Docker工具箱
方法180
10.2.2安裝步驟180
10.3 MacOS X安裝183
10.4小結185
作者介紹
Rodolfo Bonnin是一名系統工程師,同時也是阿根廷國立理工大學的博士生。他還在德國斯圖加特大學進修過並行編程和圖像理解的研究生課程。
他從2005年開始研究高性能計算,並在2008年開始研究和實現卷積神經網絡,編寫過一個同時支持CPU和GPU的神經網絡前饋部分。最近,他一直在進行使用神經網絡進行欺詐模式檢測的工作,目前正在使用ML技術進行信號分類。