PyTorch是Facebook于2017年初在機器學習和科學計算工具Torch的基礎上,針對Python語言發(fā)布的一個全新的機器學習工具包,一經(jīng)推出便受到了業(yè)界的廣泛關注和討論,目前已經(jīng)成為機器學習從業(yè)人員的研發(fā)工具。
《PyTorch深度學習》是使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡模型的實用指南,內(nèi)容分為9章,包括PyTorch與深度學習的基礎知識、神經(jīng)網(wǎng)絡的構(gòu)成、神經(jīng)網(wǎng)絡的知識、機器學習基礎知識、深度學習在計算機視覺中的應用、深度學習在序列數(shù)據(jù)和文本中的應用、生成網(wǎng)絡、現(xiàn)代網(wǎng)絡架構(gòu),以及PyTorch與深度學習的未來走向。
《PyTorch深度學習》適合對深度學習領域感興趣且希望一探PyTorch的業(yè)內(nèi)人員閱讀;具備其他深度學習框架使用經(jīng)驗的讀者,也可以通過本書掌握PyTorch的用法。
深度學習為世界上的智能系統(tǒng)(比如Google Voice、Siri和Alexa)提供了動力。隨著硬件(如GPU)和軟件框架(如PyTorch、Keras、TensorFlow和CNTK)的進步以及大數(shù)據(jù)的可用性,人們在文本、視覺和分析等領域更容易實施相應問題的解決方案。
本書對當今前沿的深度學習庫PyTorch進行了講解。憑借其易學習性、高效性以及與Python開發(fā)的天然親近性,PyTorch獲得了深度學習研究人員以及數(shù)據(jù)科學家們的關注。本書從PyTorch的安裝講起,然后介紹了為現(xiàn)代深度學習提供驅(qū)動力的多個基礎模塊,還介紹了使用CNN、RNN、LSTM以及其他網(wǎng)絡模型解決問題的方法。本書對多個先進的深度學習架構(gòu)的概念(比如ResNet、DenseNet、Inception和Seq2Seq)進行了闡述,但沒有深挖其背后的數(shù)學細節(jié)。與GPU計算相關的知識、使用PyTorch訓練模型的方法,以及用來生成文本和圖像的復雜神經(jīng)網(wǎng)絡(如生成網(wǎng)絡),也在本書中有所涵蓋。
學完本書后,讀者可以使用PyTorch輕松開發(fā)深度學習應用程序。
本書內(nèi)容:
在GPU加速的張量計算中使用PyTorch;
為圖像自行創(chuàng)建數(shù)據(jù)集和數(shù)據(jù)裝載器,然后使用torchvision和torchtext測試模型;
使用PyTorch來實現(xiàn)CNN架構(gòu),從而構(gòu)建圖像分類器;
使用RNN、LSTM和GRU開發(fā)能進行文本分類和語言建模的系統(tǒng);
學習的CCN架構(gòu)(比如ResNet、Inception、DenseNet等),并將其應用在遷移學習中;
學習如何混合多個模型,從而生成一個強大的集成模型;
使用GAN生成新圖像,并使用風格遷移生成藝術圖像。
Vishnu Subramanian在領導、設計和實施大數(shù)據(jù)分析項目(人工智能、機器學習和深度學習)方面富有經(jīng)驗。擅長機器學習、深度學習、分布式機器學習和可視化等。在零售、金融和旅行等行業(yè)頗具經(jīng)驗,還善于理解和協(xié)調(diào)企業(yè)、人工智能和工程團隊之間的關系。
第 1章 PyTorch與深度學習 1
1.1 人工智能 1
1.2 機器學習 3
1.3 深度學習 4
1.3.1 深度學習的應用 4
1.3.2 深度學習的浮夸宣傳 6
1.3.3 深度學習發(fā)展史 6
1.3.4 為何是現(xiàn)在 7
1.3.5 硬件可用性 7
1.3.6 數(shù)據(jù)和算法 8
1.3.7 深度學習框架 9
1.4 小結(jié) 10
第 2章 神經(jīng)網(wǎng)絡的構(gòu)成 11
2.1 安裝PyTorch 11
2.2 實現(xiàn)第 一個神經(jīng)網(wǎng)絡 12
2.2.1 準備數(shù)據(jù) 13
2.2.2 為神經(jīng)網(wǎng)絡創(chuàng)建數(shù)據(jù) 20
2.2.3 加載數(shù)據(jù) 24
2.3 小結(jié) 25
第3章 深入了解神經(jīng)網(wǎng)絡 26
3.1 詳解神經(jīng)網(wǎng)絡的組成部分 26
3.1.1 層—神經(jīng)網(wǎng)絡的基本組成 27
3.1.2 非線性激活函數(shù) 29
3.1.3 PyTorch中的非線性激活函數(shù) 32
3.1.4 使用深度學習進行圖像分類 36
3.2 小結(jié) 46
第4章 機器學習基礎 47
4.1 三類機器學習問題 47
4.1.1 有監(jiān)督學習 48
4.1.2 無監(jiān)督學習 48
4.1.3 強化學習 48
4.2 機器學習術語 49
4.3 評估機器學習模型 50
4.4 數(shù)據(jù)預處理與特征工程 54
4.4.1 向量化 54
4.4.2 值歸一化 54
4.4.3 處理缺失值 55
4.4.4 特征工程 55
4.5 過擬合與欠擬合 56
4.5.1 獲取更多數(shù)據(jù) 56
4.5.2 縮小網(wǎng)絡規(guī)!57
4.5.3 應用權重正則化 58
4.5.4 應用dropout 58
4.5.5 欠擬合 60
4.6 機器學習項目的工作流 60
4.6.1 問題定義與數(shù)據(jù)集創(chuàng)建 60
4.6.2 成功的衡量標準 61
4.6.3 評估協(xié)議 61
4.6.4 準備數(shù)據(jù) 62
4.6.5 模型基線 62
4.6.6 大到過擬合的模型 63
4.6.7 應用正則化 63
4.6.8 學習率選擇策略 64
4.7 小結(jié) 65
第5章 深度學習之計算機視覺 66
5.1 神經(jīng)網(wǎng)絡簡介 66
5.2 從零開始構(gòu)建CNN模型 69
5.2.1 Conv2d 71
5.2.2 池化 74
5.2.3 非線性激活—ReLU 75
5.2.4 視圖 76
5.2.5 訓練模型 77
5.2.6 狗貓分類問題—從零開始構(gòu)建CNN 80
5.2.7 利用遷移學習對狗貓分類 82
5.3 創(chuàng)建和探索VGG16模型 84
5.3.1 凍結(jié)層 85
5.3.2 微調(diào)VGG16模型 85
5.3.3 訓練VGG16模型 86
5.4 計算預卷積特征 88
5.5 理解CNN模型如何學習 91
5.6 CNN層的可視化權重 94
5.7 小結(jié) 95
第6章 序列數(shù)據(jù)和文本的深度學習 96
6.1 使用文本數(shù)據(jù) 96
6.1.1 分詞 98
6.1.2 向量化 100
6.2 通過構(gòu)建情感分類器訓練詞向量 104
6.2.1 下載IMDB數(shù)據(jù)并對文本分詞 104
6.2.2 構(gòu)建詞表 106
6.2.3 生成向量的批數(shù)據(jù) 107
6.2.4 使用詞向量創(chuàng)建網(wǎng)絡模型 108
6.2.5 訓練模型 109
6.3 使用預訓練的詞向量 110
6.3.1 下載詞向量 111
6.3.2 在模型中加載詞向量 112
6.3.3 凍結(jié)embedding層權重 113
6.4 遞歸神經(jīng)網(wǎng)絡(RNN) 113
6.5 LSTM 117
6.5.1 長期依賴 117
6.5.2 LSTM網(wǎng)絡 117
6.6 基于序列數(shù)據(jù)的卷積網(wǎng)絡 123
6.7 小結(jié) 125
第7章 生成網(wǎng)絡 126
7.1 神經(jīng)風格遷移 126
7.1.1 加載數(shù)據(jù) 129
7.1.2 創(chuàng)建VGG模型 130
7.1.3 內(nèi)容損失 131
7.1.4 風格損失 131
7.1.5 提取損失 133
7.1.6 為網(wǎng)絡層創(chuàng)建損失函數(shù) 136
7.1.7 創(chuàng)建優(yōu)化器 136
7.1.8 訓練 137
7.2 生成對抗網(wǎng)絡(GAN) 138
7.3 深度卷機生成對抗網(wǎng)絡 139
7.3.1 定義生成網(wǎng)絡 140
7.3.2 定義判別網(wǎng)絡 144
7.3.3 定義損失函數(shù)和優(yōu)化器 145
7.3.4 訓練判別網(wǎng)絡 145
7.3.5 訓練生成網(wǎng)絡 146
7.3.6 訓練整個網(wǎng)絡 147
7.3.7 檢驗生成的圖片 148
7.4 語言建模 150
7.4.1 準備數(shù)據(jù) 151
7.4.2 生成批數(shù)據(jù) 152
7.4.3 定義基于LSTM的模型 153
7.4.4 定義訓練和評估函數(shù) 155
7.4.5 訓練模型 157
7.5 小結(jié) 159
第8章 現(xiàn)代網(wǎng)絡架構(gòu) 160
8.1 現(xiàn)代網(wǎng)絡架構(gòu) 160
8.1.1 ResNet 160
8.1.2 Inception 168
8.2 稠密連接卷積網(wǎng)絡(DenseNet) 175
8.2.1 DenseBlock 175
8.2.2 DenseLayer 176
8.3 模型集成 180
8.3.1 創(chuàng)建模型 181
8.3.2 提取圖片特征 182
8.3.3 創(chuàng)建自定義數(shù)據(jù)集和數(shù)據(jù)加載器 183
8.3.4 創(chuàng)建集成模型 184
8.3.5 訓練和驗證模型 185
8.4 encoder-decoder架構(gòu) 186
8.4.1 編碼器 188
8.4.2 解碼器 188
8.5 小結(jié) 188
第9章 未來走向 189
9.1 未來走向 189
9.2 回顧 189
9.3 有趣的創(chuàng)意應用 190
9.3.1 對象檢測 190
9.3.2 圖像分割 191
9.3.3 PyTorch中的OpenNMT 192
9.3.4 Allen NLP 192
9.3.5 fast.ai—神經(jīng)網(wǎng)絡不再神秘 192
9.3.6 Open Neural Network Exchange 192
9.4 如何跟上前沿 193
9.5 小結(jié) 193