TensorFlow電腦視覺原理與實戰
內容描述
本書以Python數據處理工具和深度學習的基本原理為切入點,由淺入深介紹TensorFlow的使用方法。由原理著手到代碼實踐,內容從最基本的回歸問題開始,到近年來大熱的捲積神經網絡和生成式模型。本書省去大量煩瑣的數學推導,以通俗易懂的語言和示例闡述深度學習的原理。 本書共8章,第1和2章介紹TensorFlow的環境搭建與Python基本數據處理工具,為後面介紹TensorFlow做準備;第3~5章講解TensorFlow和深度學習中的基本概念及深度學習常用數據集;第6~8章從易到難深入講解不同的神經網絡模型並配合大量的示例,進一步鞏固TensorFlow代碼的使用。本書配有整套代碼,在重點、難點處配有講解視頻,讀者可以根據自身興趣與需求對代碼進行修改並通過視頻對難以理解的知識點進行鞏固。 本書的難度、層次清晰,適合任何希望入門人工智能領域的學生或工作者閱讀,同時也包含新的技術,適於想要緊跟視覺研究的從業人員閱讀。
目錄大綱
1章深度學習簡介及TensorFlow環境搭建 (21min)
1.1什麼是深度學習
1.2深度學習語言與工具
1.3TensorFlow的優勢
1.4TensorFlow的安裝與環境配置
1.4.1Windows下配置GPU版TensorFlow
1.4.2Linu下配置GPU版TensorFlow
1.4.3直接通過Anaconda解決環境依賴
1.4.4安裝CPU版本的TensorFlow
1.5小結
2章常用的Python數據處理工具
2.1NumPy的使用
2.1.1NumPy中的數據類型
2.1.2NumPy中數組的使用
2.2Matplotlib的使用
2.2.1Matplotlib中的相關概念
2.2.2使用Matplotlib繪圖
2.3Pandas的使用
2.3.1Pandas中的數據結構
2.3.2使用Pandas讀取數據
2.3.3使用Pandas處理數據
2.4SciPy的使用
2.4.1使用SciPy寫入mat文件
2.4.2使用SciPy讀取mat文件
2.5scikitlearn的使用
2.5.1scikitlearn的使用框架
2.5.2使用scikitlearn進行回歸
2.5.3使用scikitlearn進行分類
2.6Pillow的使用
2.6.1使用Pillow讀取並顯示圖像
2.6.2使用Pillow處理圖像
2.7OpenCV的使用
2.7.1使用OpenCV讀取與顯示圖像
2.7.2使用OpenCV處理圖像
2.8argparse的使用
2.8.1argparse的使用框架
2.8.2使用argparse解析命令行參數
2.9JSON的使用
2.9.1使用JSON寫入數據
2.9.2使用JSON讀取數據
2.10小結
3章TensorFlow基礎
3.1TensorFlow的基本原理
3.2TensorFlow中的計算圖與會話機制
3.2.1計算圖
3.2.2會話機制
3.3TensorFlow中的張量表示
3.3.1tf.constant
3.3.2tf.Variable
3.3.3tf.placeholder
3.4TensorFlow中的數據類型
3.5TensorFlow中的命名空間
3.5.1tf.get_variable
3.5.2tf.name_scope
3.5.3tf.variable_scope
3.6TensorFlow中的控制流
3.6.1TensorFlow中的分支結構
3.6.2TensorFlow中的循環結構
3.6.3TensorFlow中指定節點執行順序
3.7TensorFlow模型的輸入與輸出
3.8TensorFlow的模型持久化
3.8.1模型的保存
3.8.2模型的讀取
3.9使用TensorBoard進行結果可視化
3.9.1計算圖的可視化
3.9.2矢量變化的可視化
3.9.3圖像的可視化
3.10小結
4章深度學習的基本概念 (108min)
4.1深度學習相較於傳統方法的優勢
4.2深度學習中的激活函數
4.2.1Sigmoid
4.2.2Softma
4.2.3Tanh
4.2.4ReLU
4.2.5Leaky ReLU
4.2.6PReLU
4.2.7RReLU
4.2.8ReLU6
4.2.9ELU
4.2.10Swish
4.2.11Mish
4.3深度學習中的損失函數
4.3.1回歸任務
4.3.2分類任務
4.4深度學習中的歸一化/標準化方法
4.4.1歸一化方法
4.4.2標準化方法
4.5深度學習中的優化器
4.5.1不帶動量的優化器
4.5.2帶動量的優化器
4.6深度學習中的技巧
4.6.1輸入數據的處理
4.6.2激活函數的選擇
4.6.3損失函數的選擇
4.6.4標準化方法的選擇
4.6.5batch_size的選擇
4.6.6優化器的選擇
4.6.7學習率的選擇
4.7小結
5章常用數據集及其使用方式
5.1IRIS鳶尾花數據集
5.2MNIST手寫數字數據集
5.3SVHN數據集
5.4CIFAR10與CIFAR100數據集
5.4.1CIFAR10
5.4.2CIFAR100
5.4.3對圖像進行數據增強
5.5Oford Flower數據集
5.6ImageNet數據集
5.7小結
6章全連接神經網絡
6.1什麼是全連接神經網絡
6.1.1感知機
6.1.2全連接神經網絡
6.2使用全連接神經網絡進行回歸
6.3使用全連接神經網絡進行分類
6.4使用全連接神經網絡對數據降維
6.5使用全連接神經網絡完成手寫數字識別
6.5.1訓練模型
6.5.2保存權重
6.5.3交互接收用戶輸入
6.5.4加載權重並預測
6.6小結
7章卷積神經網絡 (77min)
7.1什麼是卷積
7.1.1卷積的概念
7.1.2卷積作的參數
7.1.3卷積的計算方式
7.2卷積神經網絡中常用的層
7.2.1輸入層
7.2.2卷積層
7.2.3激活層
7.2.4標準化層
7.2.5池化層
7.2.6全連接層
7.3常用的捲積神經網絡結構
7.3.1VGGNet
7.3.2Inception
7.3.3ResNet
7.3.4DenseNet
7.3.5ResNeXt
7.3.6MobileNet
7.3.7Dual Path Network
7.3.8SENet
7.3.9SKNet
7.3.10ResNeSt
7.4使用卷積神經網絡完成圖像分類
7.4.1定義命令行參數
7.4.2模型訓練函數
7.4.3模型測試函數
7.4.4主函數
7.4.5訓練模型識別手寫數字
7.4.6訓練模型識別自然場景圖像
7.5卷積神經網絡究竟學到了什麼
7.5.1卷積核的可視化
7.5.2類激活映的可視化
7.5.3卷積神經網絡輸出預測值的可視化
7.6使用卷積神經網絡給全連接神經網絡傳授知識
7.7轉置卷積層
7.7.1什麼是轉置卷積層
7.7.2使用轉置卷積層讓圖像變得清晰
7.7.3使用轉置卷積層給圖像上色
7.8使用卷積層與反捲積層做自編碼器
7.9小結
8章生成式模型
8.1什麼是生成式模型
8.2變分自編碼器
8.2.1什麼是變分自編碼器
8.2.2使用變分自編碼器生成手寫數字
8.2.3使用變分自編碼器生成指定的數字
8.3生成式對抗網絡
8.3.1什麼是生成式對抗網絡
8.3.2使用生成式對抗網絡生成手寫數字
8.3.3使用生成式對抗網絡生成指定的數字
8.3.4使用生成式對抗網絡生成自然圖像
8.3.5使用生成式對抗網絡進行圖像域轉換
8.4小結
作者介紹
歐陽鵬程
西安交通大學工學碩士,研究方向為計算機視覺與數據處理。
曾代表西安交通大學參加第一屆浦發百度智慧金融極客挑戰賽,榮獲全國三等獎。
曾於華為**視覺實驗室與廣發證券實習。
於國內視頻網站發布TensorFlow教程,深受網友支持與喜愛。