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