深度學習實踐 : 基於 Caffe 的解析

薛雲峰

立即出貨

買這商品的人也買了...

相關主題

商品描述

本書主要介紹Caffe的技術原理和一些高級使用技巧,首先介紹深度學習的趨勢和業內動態,然後介紹Caffe的基礎知識。在理解了Caffe算法的基礎上,介紹Caffe的技術原理和特點,包括數學知識和設計知識。*後介紹Caffe深度學習多任務網絡。本書將實踐和現有系統進行無縫對接,並詳述了各種調參技巧。

目錄大綱

目錄
前言
第1章深度學習簡介1 
1.1深度學習的歷史1 
1.2深度學習工具簡介4 
1.3深度學習的未來趨勢12 

第2章搭建你的Caffe武器庫13 
2.1硬件選型13 
2.2 Caffe在Windows下的安裝14 
2.3 Caffe在Linux下的安裝16 
2.3.1 Linux安裝16 
2.3.2 Nvidia CUDA Toolkit的安裝(*.deb方法) 17 
2.3.3 Caffe的安裝和測試20 
2.4 OpenCV的安裝和編譯23 
2.4.1 OpenCV的下載23 
2.4.2配置環境變量24 
2.5 Boost庫的安裝和編譯27 
2.6 Python相關庫的安裝31 
2.7 MATLAB接口的配置33 
2.8其他庫的安裝44 
2.8.1 LMDB的編譯與安裝44 
2.8.2 LevelDB的編譯與安裝51 
2.8.3 glog的編譯與安裝57 
2.8.4安裝gflags 63 

第3章Caffe的簡單訓練69 
3.1 Caffe轉化數據工具的使用介紹69 
3.1.1命令參數介紹69 
3.1.2生成文件列表70
3.1.3使用的Linux命令簡介70 
3.1.4生成文件結果71 
3.1.5圖片參數組詳解71 
3.2 Caffe提取特徵的工具使用說明72 
3.3 Caffe訓練需要的幾個部件73 
3.3.1網絡proto文件的編寫73 
3.3.2 Solver配置74 
3.3.3訓練腳本的編寫76 
3.3.4訓練log解析76 
3.4 Caffe簡單訓練分類任務79 
3.5測試訓練結果86 
3.6使用訓練好的模型進行預測87 

第4章認識深度學習網絡中的層97 
4.1卷積層的作用與類別97 
4.1.1卷積層的作用97 
4.1.2卷積分類98 
4.2激活層的作用與類別99 
4.2.1激活函數的定義及相關概念99 
4.2. 2激活函數的類別101 
4.3池化層的作用與類別101 
4.3.1池化層的歷史101 
4.3.2池化層的作用102 
4.3.3池化層分類103 
4.4全連接層的作用與類別105 
4.5 dropout層的作用106 
4.6損失函數層106 

第5章Caffe的框架設計110
5.1 Caffe中CPU和GPU結構的融合110 
5.1.1 SyncedMemory函數及其功能110 
5.1.2 SyncedMemory類的作用112 
5.2 Caffe訓練時層的各個成員函數的調用順序112 
5.3 Caffe網絡構建函數的解析115 
5.4 Caffe層如何使用proto文件實現反射機制116 
5.4.1工廠模式116 
5.4.2層的創建118 
5.5 Caffe的調用流程圖及函數順序導視122 
5.6 Caffe框架使用的編碼思想125 
5.6.1 Caffe的總體結構125 
5.6.2 Caffe數據存儲設計128 

第6章基礎數學知識130 
6.1卷積層的數學公式及求導130 
6.2激活層的數學公式圖像及求導132 
6.3三種池化層的數學公式及反向計算134 
6.4全連接層的數學公式及求導135 
6.4.1全連接層的前向計算及公式推導135 
6.4.2全連接層的反向傳播及公式推導136 
6.5反捲積層的數學公式及求導137 

第7章卷積層和池化層的使用139 
7.1卷積層參數初始化介紹139 
7.2池化層的物理意義141 
7.3卷積層和池化層輸出計算及參數說明141
7.4實踐:在Caffe框架下用Prototxt定義卷積層和池化層142 
7.4.1卷積層參數的編寫142 
7.4.2必須設置的參數143 
7.4.3其他可選的設置參數143 
7.4.4卷積參數編寫具體示例144 
7.4.5卷積參數編寫小建議145 

第8章激活函數的介紹146 
8.1用ReLU解決sigmoid的缺陷146 
8.2 ReLU及其變種的對比148 
8.3實踐:在Caffe框架下用Prototxt定義激活函數150 
8.3.1 ReLU 150 
8.3.2 PReLU 150 
8.3.3 Sigmoid 151 

第9章損失函數152 
9.1 contrastive_loss函數和對應層的介紹和使用場景152 
9.2 multinomial_logistic_loss函數和對應層的介紹和使用說明154 
9.3 sigmoid_cross_entropy函數和對應層的介紹和使用說明155 
9.4 softmax_loss函數和對應層的介紹和使用說明158 
9.5 euclidean_loss函數和對應層的介紹和使用說明161 
9.6 hinge_loss函數和對應層的介紹和使用說明162 
9.7 infogain_loss函數和對應層的介紹和使用說明163
9.8 TripletLoss的添加及其使用165 
9.8.1 TripletLoss的思想165 
9.8.2 TripletLoss梯度推導166 
9.8.3新增加TripletLossLayer 167 
9.9 Coupled Cluster Loss的添加及其使用176 
9.9.1增加loss層176 
9.9.2實現具體示例177 

第10章Batch Normalize層的使用194 
10.1 batch_normalize層的原理和作用194 
10.2 batch_normalize層的優勢196 
10.3常見網絡結構batch_normalize層的位置197 
10.4 proto的具體寫法202 
10.5其他歸一化層的介紹204
 
第11章回歸網絡的構建205 
11.1如何生成回歸網絡訓練數據205 
11.2回歸任務和分類任務的異同點206 
11.3回歸網絡收斂性的判斷207 
11.4回歸任務與級聯模型210 

第12章多任務網絡的構建214 
12.1多任務歷史214 
12.2多任務網絡的數據生成216 
12.3如何簡單建立多任務216 
12.4近年的多任務深度學習網絡217
12.5多任務中通用指導性調參和網絡構建結論221 
12.5.1如何避免出現多任務後性能下降的情況221 
12.5.2怎樣