●上篇 初見第1天 什麼是深度學習21.1 星星之火,可以燎原31.2 師夷長技41.2.1 谷歌與微軟41.2.2 Facebook、亞馬遜與NVIDIA51.3 中國崛起61.3.1 BAT在路上61.3.2 星光閃耀71.3.3 企業熱是風向標81.4 練習題9第2天 深度學習的過往102.1 傳統機器學習的局限性102.2 從表示學習到深度學習112.3 監督學習122.4 反向傳播算法132.5 卷積神經網絡152.6 深度學習反思172.7 練習題182.8 參考資料18第3天 深度學習工具彙總193.1 Caffe193.2 Torch & OverFeat203.3 MxNet223.4 TensorFlow223.5 Theano243.6 CNTK243.7 練習題253.8 參考資料26第4天 準備Caffe環境274.1 Mac OS環境準備274.2 Ubuntu環境準備284.3 RHEL/Fedora/CentOS環境準備294.4 Windows環境準備294.5 常見問題324.6 練習題324.7 參考資料33第5天 Caffe依賴包解析345.1 ProtoBuffer345.2 Boost385.3 GFLAGS385.4 GLOG395.5 BLAS405.6 HDF5415.7 OpenCV425.8 LMDB和LEVELDB425.9 Snappy435.10 小結435.11 練習題495.12 參考資料49第6天 運行手寫體數字識別例程506.1 MNIST數據集506.1.1 下載MNIST數據集506.1.2 MNIST數據格式描述516.1.3 轉換格式536.2 LeNet-5模型606.2.1 LeNet-5模型描述606.2.2 訓練超參數656.2.3 訓練日志666.2.4 用訓練好的模型對數據進行預測766.2.5 Windows下訓練模型766.3 回顧786.4 練習題796.5 參考資料79篇尾語80中篇 熱戀第7天 Caffe代碼梳理827.1 Caffe目錄結構827.2 如何有效閱讀Caffe源碼847.3 Caffe支持哪些深度學習特性867.3.1 卷積層867.3.2 全連接層897.3.3 激活函數917.4 小結997.5 練習題997.6 參考資料100第8天 Caffe數據結構1018.1 Blob1018.1.1 Blob基本用法1028.1.2 數據結構描述1088.1.3 Blob是怎樣煉成的1098.2 Layer1258.2.1 數據結構描述1268.2.2 Layer是怎樣建成的1278.3 Net1368.3.1 Net基本用法1368.3.2 數據結構描述1398.3.3 Net是怎樣繪成的1398.4 機制和策略1468.5 練習題1478.6 參考資料148第9天 Caffe I/O模塊1499.1 數據讀取層1499.1.1 數據結構描述1499.1.2 數據讀取層實現1509.2 數據變換器1559.2.1 數據結構描述1559.2.2 數據變換器的實現1569.3 練習題171第10天 Caffe模型17210.1 prototxt表示17310.2 內存中的表示17610.3 磁盤上的表示17610.4 Caffe Model Zoo17810.5 練習題18010.6 參考資料180第11天 Caffe前向傳播計算18111.1 前向傳播的特點18111.2 前向傳播的實現18211.2.1 DAG構造過程18211.2.2 Net Forward實現19011.3 練習題192第12天 Caffe反向傳播計算19312.1 反向傳播的特點19312.2 損失函數19312.2.1 算法描述19412.2.2 參數描述19512.2.3 源碼分析19512.3 反向傳播的實現20312.4 練習題205第13天 Caffe很優化求解過程20713.1 求解器是什麼20713.2 求解器是如何實現的20813.2.1 算法描述20813.2.2 數據結構描述21013.2.3 CNN訓練過程21813.2.4 CNN預測過程22513.2.5 Solver的快照和恢復功能22713.3 練習題230第14天 Caffe實用工具23114.1 訓練和預測23114.2 特征提取24114.3 轉換圖像格式24714.4 計算圖像均值25414.5 自己編寫工具25714.6 練習題257篇尾語258下篇 升華第15天 Caffe計算加速26015.1 Caffe計時功能26015.2 Caffe GPU加速模式26215.2.1 GPU是什麼26215.2.2 CUDA是什麼26315.2.3 GPU、CUDA和深度學習26315.2.4 Caffe GPU環境準備26415.2.5 切換到Caffe GPU加速模式26815.3 Caffe cuDNN加速模式26915.3.1 獲取cuDNN27015.3.2 切換到Caffe cuDNN加速模式27015.3.3 Caffe不同硬件配置性能27215.4 練習題27315.5 參考資料273第16天 Caffe可視化方法27516.1 數據可視化27516.1.1 MNIST數據可視化27516.1.2 CIFAR10數據可視化27716.1.3 ImageNet數據可視化27816.2 模型可視化27916.2.1 網絡結構可視化27916.2.2 網絡權值可視化28116.3 特征圖可視化28816.4 學習曲線29516.5 小結29816.6 練習題29816.7 參考資料299第17天 Caffe遷移和部署30017.1 從開發測試到生產部署30017.2 使用Docker30217.2.1 Docker基本概念30217.2.2 Docker安裝30317.2.3 Docker入門30517.2.4 Docker使用進階31217.3 練習題31717.4 參考資料317第18天 關於ILSVRC不得不說的一些事兒31818.1 ImageNet數據集31818.2 ILSVRC比賽項目31918.2.1 圖像分類(CLS)32018.2.2 目標定位(LOC)32018.2.3 目標檢測(DET)32118.2.4 視頻目標檢測(VID)32218.2.5 場景分類32218.3 Caffe ILSVRC實踐32318.4 練習題32618.5 參考資料326第19天 放之四海而皆準32719.1 圖像分類32719.1.1 問題描述32719.1.2 應用案例――商品分類33019.2 圖像中的字符識別33219.2.1 問題描述33219.2.2 應用案例――身份證實名認證33319.3 目標檢測33719.3.1 問題描述33719.3.2 很好實踐――運行R-CNN例程33719.4 人臉識別34019.4.1 問題描述34019.4.2 很好實踐――使用Face++ SDK實現人臉檢測34219.5 自然語言處理34319.5.1 問題描述34319.5.2 很好實踐――NLP-Caffe34419.6 藝術風格35019.6.1 問題描述35019.6.2 很好實踐――style-transfer35219.7 小結35419.8 練習題35419.9 參考資料355第20天 繼往開來的領路人35620.1 Caffe Traps and Pitfalls35620.1.1 不支持任意數據類型35620.1.2 不夠靈活的高級接口35720.1.3 繁雜的依賴包35720.1.4 堪憂的卷積層實現35720.1.5 架構之殤35820.1.6 應用場景局限性35820.2 很好實踐――Caffe235920.3 練習題36120.4 參考資料362第21天 新生36321.1 三人行,必有我師36321.2 路漫漫其修遠兮,吾將上下而求索364篇尾語366結束語367附錄A 其他深度學習工具368