《深入理解PyTorch》詳細(xì)闡述了與 PyTorch 相關(guān)的基本解決方案,主要包括深度卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)、結(jié)合 CNN 和LSTM、深度循環(huán)模型架構(gòu)、高級(jí)混合模型、圖神經(jīng)網(wǎng)絡(luò)、使用 PyTorch 生成音樂和文本、神經(jīng)風(fēng)格遷移、深度卷積 GAN、利用擴(kuò)散生成圖像、深度強(qiáng)化學(xué)習(xí)、模型訓(xùn)練優(yōu)化、將 PyTorch 模型投入生產(chǎn)、移動(dòng)設(shè)備上的 PyTorch、使用 PyTorch 進(jìn)行快速原型開發(fā)、PyTorch 和 AutoML、PyTorch 與可解釋人工智能、推薦系統(tǒng)與 PyTorch、PyTorch 和 Hugging Face 等內(nèi)容。此外,本書還提供了相應(yīng)的示例、代碼,以幫助讀者進(jìn)一步理解相關(guān)方案的實(shí)現(xiàn)過程。
深入淺出介紹PyTorch,覆蓋CNN、GAN、圖神經(jīng)網(wǎng)絡(luò)等,含豐富代碼示例,適合各層次開發(fā)者。
深度學(xué)習(xí)正引領(lǐng)著人工智能的革命,而 PyTorch 讓構(gòu)建深度學(xué)習(xí)應(yīng)用變得前所未有的簡(jiǎn)單。本書將幫助讀者掌握專家技巧,深入洞察數(shù)據(jù),充分挖掘其潛力,并構(gòu)建復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型。
本書從 PyTorch 開始,首先深入探討了用于圖像分類的卷積神經(jīng)網(wǎng)絡(luò)(CNN)架構(gòu)。然后,將帶領(lǐng)讀者探索遞歸神經(jīng)網(wǎng)絡(luò)(RNN)架構(gòu)以及 Transformers,并將其應(yīng)用于情感分析。接下來,將介紹如何創(chuàng)建任意的神經(jīng)網(wǎng)絡(luò)架構(gòu),并構(gòu)建圖神經(jīng)網(wǎng)絡(luò)(GNNs)。隨著講解的深入,將幫助讀者把深度學(xué)習(xí)(DL)應(yīng)用于包括音樂、文本和圖像生成在內(nèi)的不同領(lǐng)域,使用包括生成對(duì)抗網(wǎng)絡(luò)(GANs)和擴(kuò)散模型在內(nèi)的生成模型。
讀者通過學(xué)習(xí)本書將能在 PyTorch 中構(gòu)建并訓(xùn)練自己的深度強(qiáng)化學(xué)習(xí)模型,并解釋深度學(xué)習(xí)(DL)模型。讀者不僅將學(xué)習(xí)如何構(gòu)建模型,還將學(xué)習(xí)如何使用專家的技巧和技術(shù)將它們部署到生產(chǎn)環(huán)境和移動(dòng)設(shè)備(Android 和 iOS)中。隨后讀者將掌握在分布式環(huán)境中高效訓(xùn)練大型模型的技能,并使用 AutoML 有效地搜索神經(jīng)架構(gòu),以及使用 fastai 快速原型化模型。然后,讀者將學(xué)會(huì)使用 PyTorch 創(chuàng)建推薦系統(tǒng),最后能結(jié)合 Hugging Face 的主要庫和 PyTorch 構(gòu)建尖端的人工智能(AI)模型。
通過本書的學(xué)習(xí),讀者將能夠熟練地執(zhí)行復(fù)雜的深度學(xué)習(xí)任務(wù),使用 PyTorch 構(gòu)建智能 AI 模型。
適用讀者
本書面向數(shù)據(jù)科學(xué)家、機(jī)器學(xué)習(xí)研究人員以及深度學(xué)習(xí)實(shí)踐者,他們希望使用 PyTorch 2.x實(shí)現(xiàn)高級(jí)深度學(xué)習(xí)范式。閱讀本書讀者需要具備使用 Python 進(jìn)行深度學(xué)習(xí)的工作經(jīng)驗(yàn)。
本書內(nèi)容
第 1 章包含對(duì)深度學(xué)習(xí)中各種術(shù)語和概念的簡(jiǎn)要說明,這些內(nèi)容對(duì)于理解本書后續(xù)部分非常有幫助。本章還提供了 PyTorch 與 TensorFlow 的快速對(duì)比,這兩種語言和工具將貫穿全書,用于構(gòu)建深度學(xué)習(xí)模型。最后,我們使用 PyTorch 訓(xùn)練了一個(gè)神經(jīng)網(wǎng)絡(luò)模型。
第 2 章概述了近年來開發(fā)的最先進(jìn)的深度 CNN 模型架構(gòu)。我們使用 PyTorch 創(chuàng)建了許多這樣的模型,并針對(duì)適當(dāng)?shù)娜蝿?wù)對(duì)它們進(jìn)行了訓(xùn)練。
第 3 章通過一個(gè)實(shí)例介紹如何構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)模型,該模型結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)(CNN)和長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM),在輸入圖像時(shí)輸出生成文本和標(biāo)題,并使用 PyTorch實(shí)現(xiàn)。
第 4 章深入探討遞歸神經(jīng)網(wǎng)絡(luò)架構(gòu)的最新進(jìn)展,特別是 RNN、LSTM 和 GRU。完成本章的學(xué)習(xí)后,讀者將能夠在 PyTorch 中創(chuàng)建復(fù)雜的遞歸架構(gòu)。
第 5 章討論一些先進(jìn)的、獨(dú)特的混合神經(jīng)網(wǎng)絡(luò)架構(gòu),如徹底改變了自然語言處理領(lǐng)域的 Transformers。此外,本章還探討了 RandWireNNs,一窺神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的世界,并使用 PyTorch 進(jìn)行實(shí)現(xiàn)。
第 6 章介紹圖神經(jīng)網(wǎng)絡(luò)(GNNs)背后的基本概念、不同類型的圖學(xué)習(xí)任務(wù)以及各種 GNN 模型架構(gòu)。然后,本章深入探討了其中一些架構(gòu),即圖卷積網(wǎng)絡(luò)(GCNs)和圖注意力網(wǎng)絡(luò)(GATs)。本章選擇使用 PyTorch Geometric 作為在 PyTorch 中構(gòu)建 GNNs 的首選庫。
第 7 章展示如何使用 PyTorch 創(chuàng)建深度學(xué)習(xí)模型,這些模型運(yùn)行時(shí)能夠在幾乎不提供任何輸入的情況下創(chuàng)作音樂和撰寫文本。
第 8 章討論一種特殊的 CNN 模型,它可以混合多個(gè)輸入圖像并生成具有藝術(shù)感的任意圖像。
第 9 章解釋生成對(duì)抗網(wǎng)絡(luò)(GANs)的概念,并使用 PyTorch 在特定任務(wù)上訓(xùn)練了一個(gè)GAN。
第 10 章從頭開始實(shí)現(xiàn)了一個(gè)擴(kuò)散模型,作為最先進(jìn)的文本生成圖像模型,并使用PyTorch 實(shí)現(xiàn)。
第 11 章探索如何使用 PyTorch 訓(xùn)練深度強(qiáng)化學(xué)習(xí)任務(wù)上的代理,如視頻游戲中的玩家。
第 12 章探討如何通過分布式訓(xùn)練以及 PyTorch 中的混合精度訓(xùn)練實(shí)踐,用有限的資源高效訓(xùn)練大型模型。本章結(jié)束時(shí),讀者將掌握使用 PyTorch 高效訓(xùn)練大型模型的技能。
第 13 章詳細(xì)講解如何將 PyTorch 編寫的深度學(xué)習(xí)模型部署到真實(shí)的生產(chǎn)系統(tǒng)中,并使用 Flask 和 Docker,以及 TorchServe。隨后讀者將學(xué)習(xí)如何使用 TorchScript 和 ONNX 導(dǎo)出PyTorch 模型。此外還將學(xué)習(xí)如何將 PyTorch 代碼作為 C 應(yīng)用程序進(jìn)行打包。最后,讀者將學(xué)習(xí)如何在一些流行的云計(jì)算平臺(tái)上使用 PyTorch。
第 14 章介紹使用各種預(yù)訓(xùn)練的 PyTorch 模型,并將其部署在不同的移動(dòng)操作系統(tǒng)上。
第 15 章討論各種工具和庫,如 fastai 和 PyTorch Lightning,它們使 PyTorch 中的模型訓(xùn)練過程快了數(shù)倍。此外本章還解釋了如何分析 PyTorch 代碼以理解資源利用情況。
第 16 章介紹如何使用 AutoML 和 Optuna 有效設(shè)置機(jī)器學(xué)習(xí)實(shí)驗(yàn),并與 PyTorch 結(jié)合使用。
第 17 章重點(diǎn)在于使用 Captum 等工具,并結(jié)合 PyTorch,使機(jī)器學(xué)習(xí)模型對(duì)普通人也具有可解釋性。
第 18 章從頭開始構(gòu)建一個(gè)基于深度學(xué)習(xí)的電影推薦系統(tǒng),并使用 PyTorch 實(shí)現(xiàn)。
第 19 章討論如何使用 Hugging Face 庫,如 Transformers、Accelerate、Optimum 等,與PyTorch 結(jié)合構(gòu)建尖端的多模態(tài) AI 模型。
背景知識(shí)
為了充分利用本書,讀者需要滿足以下前提條件。
(1)需要具備 Python 實(shí)際開發(fā)經(jīng)驗(yàn)以及 PyTorch 的基礎(chǔ)知識(shí)。因?yàn)楸緯械拇蟛糠志毩?xí)以 Jupyter Notebook 的形式呈現(xiàn),所以期望讀者具有使用 Jupyter Notebook 的工作經(jīng)驗(yàn)。
(2)某些章節(jié)中的一些練習(xí)可能需要 GPU 來加速模型訓(xùn)練,因此擁有 NVIDIA GPU是一個(gè)加分項(xiàng)。
(3)擁有 AWS、Google Cloud 和 Microsoft Azure 等云計(jì)算平臺(tái)的注冊(cè)賬戶將有助于瀏覽第 13 章的部分內(nèi)容,并促進(jìn)第 12 章在多個(gè)虛擬機(jī)上進(jìn)行分布式訓(xùn)練。
Ashish Ranjan Jha擁有印度理工學(xué)院Roorkee的電氣工程學(xué)士學(xué)位,EPFL(瑞士)的計(jì)算機(jī)科學(xué)碩士學(xué)位和Quantic商學(xué)院(華盛頓)的工商管理碩士學(xué)位。他在所有3個(gè)學(xué)位中都獲得了優(yōu)異的成績(jī)。他曾就職于甲骨文(Oracle)、索尼(Sony)等大型科技公司,以及revolt等最新的科技獨(dú)角獸公司,主要專注于人工智能。他目前是一名機(jī)器學(xué)習(xí)工程師。Ashish在機(jī)器學(xué)習(xí)領(lǐng)域有幾年的工作經(jīng)驗(yàn)和專業(yè)知識(shí),Python是他的首選工具。他曾參與過一系列產(chǎn)品和項(xiàng)目,從開發(fā)一款使用傳感器數(shù)據(jù)預(yù)測(cè)運(yùn)輸方式的應(yīng)用程序,到檢測(cè)汽車損害保險(xiǎn)索賠中的欺詐行為。除了是一名作家,機(jī)器學(xué)習(xí)工程師,數(shù)據(jù)科學(xué)家,他還經(jīng)常在他的個(gè)人博客網(wǎng)站上發(fā)表關(guān)于機(jī)器學(xué)習(xí)的最新研究和工程主題的博客。
第 1 章 PyTorch 深度學(xué)習(xí)概述 1
1.1 深度學(xué)習(xí)回顧 2
1.2 優(yōu)化計(jì)劃 10
1.3 PyTorch 庫與 TensorFlow 的對(duì)比 13
1.3.1 張量模塊 14
1.3.2 PyTorch 模塊 17
1.3.3 使用 PyTorch 訓(xùn)練神經(jīng)網(wǎng)絡(luò) 20
1.4 本章小結(jié) 30
1.5 參考文獻(xiàn) 30
第 2 章 深度卷積神經(jīng)網(wǎng)絡(luò)架構(gòu) 31
2.1 為什么 CNN 如此強(qiáng)大 31
2.2 CNN 架構(gòu)的演變 34
2.3 從頭開始開發(fā) LeNet 36
2.3.1 使用 PyTorch 構(gòu)建 LeNet 38
2.3.2 訓(xùn)練 LeNet 43
2.3.3 測(cè)試 LeNet 44
2.4 微調(diào) AlexNet 模型 46
2.5 運(yùn)行預(yù)訓(xùn)練的 VGG 模型 56
2.6 GoogLeNet 和 Inception v3 58
2.6.1 Inception 模塊 58
2.6.2 11 卷積 61
2.6.3 全局平均池化 61
2.6.4 輔助分類器 61
2.6.5 Inception v3 62
2.7 ResNet 和 DenseNet 架構(gòu) 65
2.7.1 ResNet 65
2.7.2 DenseNet 68
2.8 EfficientNet 和 CNN 架構(gòu)的未來 72
2.9 本章小結(jié) 74
2.10 參考文獻(xiàn) 74
第 3 章 結(jié)合 CNN 和 LSTM 75
3.1 構(gòu)建帶有 CNN 和 LSTM 的神經(jīng)網(wǎng)絡(luò) 75
3.2 使用 PyTorch 構(gòu)建圖像字幕生成器 77
3.2.1 下載圖像字幕數(shù)據(jù)集 78
3.2.2 預(yù)處理字幕(文本)數(shù)據(jù) 79
3.2.3 預(yù)處理圖像數(shù)據(jù) 81
3.2.4 定義圖像字幕數(shù)據(jù)加載器 82
3.2.5 定義 CNN-LSTM 模型 84
3.2.6 訓(xùn)練 CNN-LSTM 模型 87
3.2.7 使用訓(xùn)練好的模型生成圖像字幕 90
3.3 本章小結(jié) 92
3.4 參考文獻(xiàn) 92
第 4 章 深度循環(huán)模型架構(gòu) 93
4.1 探索循環(huán)網(wǎng)絡(luò)的演變 94
4.1.1 循環(huán)神經(jīng)網(wǎng)絡(luò)的類型 94
4.1.2 RNN 96
4.1.3 雙向 RNN 97
4.1.4 LSTM 98
4.1.5 擴(kuò)展和雙向 LSTM 100
4.1.6 多維 RNN 100
4.1.7 堆疊 LSTM 100
4.1.8 GRU 101
4.1.9 網(wǎng)格 LSTM 101
4.1.10 門控正交循環(huán)單元 102
4.2 訓(xùn)練 RNN 進(jìn)行情感分析 102
4.2.1 加載和預(yù)處理文本數(shù)據(jù)集 103
4.2.2 實(shí)例化并訓(xùn)練模型 108
4.3 構(gòu)建雙向 LSTM 113
4.3.1 加載和預(yù)處理文本數(shù)據(jù)集 113
4.3.2 實(shí)例化并訓(xùn)練 LSTM 模型 115
4.4 GRU 和基于注意力的模型 117
4.4.1 GRU 和 PyTorch 117
4.4.2 基于注意力的模型 118
4.5 本章小結(jié) 120
4.6 參考文獻(xiàn) 120
第 5 章 高級(jí)混合模型 121
5.1 構(gòu)建用于語言建模的 transformer 模型 121
5.1.1 語言建;仡 122
5.1.2 transformer 模型架構(gòu) 122
5.1.3 在 PyTorch 中定義 transformer 模型 127
5.2 從頭開始開發(fā) RandWireNN 模型 133
5.2.1 理解 RandWireNN 133
5.2.2 利用 PyTorch 開發(fā) RandWireNN 134
5.3 本章小結(jié) 143
5.4 參考文獻(xiàn) 143
第 6 章 圖神經(jīng)網(wǎng)絡(luò) 145
6.1 圖神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介 145
6.1.1 圖神經(jīng)網(wǎng)絡(luò)的直觀理解 146
6.1.2 在圖數(shù)據(jù)上使用常規(guī) NN 147
6.1.3 通過計(jì)算圖理解 GNN 的強(qiáng)大能力 148
6.2 圖學(xué)習(xí)任務(wù)的類型 150
6.2.1 節(jié)點(diǎn)級(jí)任務(wù) 151
6.2.2 邊級(jí)任務(wù) 152
6.2.3 圖級(jí)任務(wù) 153
6.3 回顧突出的 GNN 模型 153
6.3.1 GCN 中的圖卷積 154
6.3.2 在圖上使用注意力機(jī)制的 GAT 156
6.3.3 執(zhí)行圖采樣的 GraphSAGE 157
6.3.4 使用PyTorch Geometric 構(gòu)建圖卷積網(wǎng)絡(luò)模型 159
6.3.5 加載和探索引用網(wǎng)絡(luò)數(shù)據(jù)集 159
6.3.6 構(gòu)建一個(gè)簡(jiǎn)單的基于神經(jīng)網(wǎng)絡(luò)的節(jié)點(diǎn)分類器 162
6.3.7 構(gòu)建用于節(jié)點(diǎn)分類的 GCN 模型 167
6.4 使用 PyTorch Geometric 訓(xùn)練 GAT 模型 171
6.5 本章小結(jié) 176
6.6 參考文獻(xiàn) 176
第 7 章 使用 PyTorch 生成音樂和文本 177
7.1 使用 PyTorch 構(gòu)建基于 transformer 的文本生成器 177
7.1.1 訓(xùn)練基于 transformer 的語言模型 177
7.1.2 保存和加載語言模型 178
7.1.3 使用語言模型生成文本 179
7.2 使用 GPT 模型作為文本生成器 180
7.2.1 使用 GPT-2 實(shí)現(xiàn)即用型文本生成 180
7.2.2 使用 PyTorch 的文本生成策略 181
7.2.3 使用 GPT-3 實(shí)現(xiàn)文本生成 187
7.3 使用 PyTorch 并通過 LSTM 生成 MIDI 音樂 189
7.3.1 加載 MIDI 音樂數(shù)據(jù) 189
7.3.2 定義 LSTM 模型和訓(xùn)練過程 193
7.3.3 訓(xùn)練并測(cè)試音樂生成模型 195
7.4 本章小結(jié) 198
7.5 參考文獻(xiàn) 198
第 8 章 神經(jīng)風(fēng)格遷移 199
8.1 如何在圖像之間遷移風(fēng)格 200
8.2 使用 PyTorch 實(shí)現(xiàn)神經(jīng)風(fēng)格遷移 203
8.2.1 加載內(nèi)容和風(fēng)格圖像 203
8.2.2 加載并修剪預(yù)訓(xùn)練的 VGG19 模型 204
8.2.3 構(gòu)建神經(jīng)風(fēng)格遷移模型 206
8.2.4 訓(xùn)練風(fēng)格遷移模型 207
8.2.5 嘗試風(fēng)格遷移系統(tǒng) 211
8.3 本章小結(jié) 214
8.4 參考文獻(xiàn) 214
第 9 章 深度卷積 GAN 215
9.1 定義生成器和鑒別器網(wǎng)絡(luò) 216
9.2 使用 PyTorch 訓(xùn)練 DCGAN 218
9.2.1 定義生成器 219
9.2.2 定義鑒別器 221
9.2.3 加載圖像數(shù)據(jù)集 222
9.2.4 DCGAN 的訓(xùn)練循環(huán) 223
9.3 使用 GAN 進(jìn)行風(fēng)格遷移 227
9.3.1 pix2pix 架構(gòu) 227
9.3.2 pix2pix 生成器 229
9.3.3 pix2pix 鑒別器 233
9.4 本章小結(jié) 235
9.5 參考文獻(xiàn) 235
第 10 章 利用擴(kuò)散生成圖像 237
10.1 理解使用擴(kuò)散的圖像生成 237
10.1.1 擴(kuò)散的工作方式 239
10.1.2 訓(xùn)練一個(gè)前向擴(kuò)散模型 239
10.1.3 執(zhí)行反向擴(kuò)散或去噪 242
10.2 訓(xùn)練一個(gè)用于圖像生成的擴(kuò)散模型 244
10.2.1 使用 Hugging Face 數(shù)據(jù)集加載數(shù)據(jù)集 244
10.2.2 使用 torchvision 轉(zhuǎn)換處理數(shù)據(jù)集 247
10.2.3 使用 diffusers 為圖像添加噪聲 248
10.2.4 定義 UNet 模型 250
10.2.5 訓(xùn)練 UNet 模型 251
10.3 使用擴(kuò)散的文本到圖像生成 256
10.3.1 將文本輸入編碼為嵌入向量 257
10.3.2 在(條件)UNet 模型中攝入額外的文本數(shù)據(jù) 258
10.4 使用 Stable Diffusion 模型從文本生成圖像 260
10.5 本章小結(jié) 263
10.6 參考文獻(xiàn) 263
第 11 章 深度強(qiáng)化學(xué)習(xí) 265
11.1 回顧強(qiáng)化學(xué)習(xí)概念 266
11.1.1 算法類型 268
11.1.2 基于模型的強(qiáng)化學(xué)習(xí)算法 269
11.1.3 無模型的強(qiáng)化學(xué)習(xí)算法 269
11.2 探討 Q 學(xué)習(xí) 270
11.3 深度 Q 學(xué)習(xí) 274
11.3.1 使用兩個(gè)獨(dú)立的 DNN 275
11.3.2 經(jīng)驗(yàn)回放緩沖區(qū) 275
11.4 在 PyTorch 中構(gòu)建 DQN 模型 276
11.4.1 初始化主 CNN 模型和目標(biāo) CNN 模型 276
11.4.2 定義經(jīng)驗(yàn)回放緩沖區(qū) 279
11.4.3 設(shè)置環(huán)境 279
11.4.4 定義 CNN 優(yōu)化函數(shù) 281
11.4.5 管理和運(yùn)行回合 282
11.4.6 訓(xùn)練 DQN 模型以學(xué)習(xí) Pong 284
11.5 本章小結(jié) 287
11.6 參考文獻(xiàn) 288
第 12 章 模型訓(xùn)練優(yōu)化 289
12.1 PyTorch 分布式訓(xùn)練 289
12.1.1 以常規(guī)方式訓(xùn)練 MNIST 模型 290
12.1.2 分布式訓(xùn)練 MNIST 模型 292
12.2 CUDA 在 GPU 上進(jìn)行分布式訓(xùn)練 300
12.2.1 自動(dòng)混合精度訓(xùn)練 302
12.2.2 在 GPU 上的常規(guī)模型訓(xùn)練 302
12.2.3 在GPU 上進(jìn)行混合精度訓(xùn)練 304
12.3 本章小結(jié) 307
12.4 參考文獻(xiàn) 307
第 13 章 將 PyTorch 模型投入生產(chǎn) 309
13.1 PyTorch 中的模型服務(wù) 309
13.1.1 創(chuàng)建 PyTorch 模型推理管道 310
13.1.2 保存和加載訓(xùn)練模型 310
13.1.3 構(gòu)建推理管道 312
13.2 構(gòu)建基礎(chǔ)模型服務(wù)器 315
13.2.1 使用Flask 編寫基礎(chǔ)應(yīng)用程序 316
13.2.2 使用 Flask 構(gòu)建我們的模型服務(wù)器 317
13.2.3 使用 Flask 服務(wù)器運(yùn)行預(yù)測(cè) 319
13.3 創(chuàng)建模型微服務(wù) 321
13.4 使用 TorchServe 提供 PyTorch 模型服務(wù) 326
13.4.1 安裝 TorchServe 326
13.4.2 啟動(dòng)并使用 TorchServe 服務(wù)器 326
13.5 導(dǎo)出使用 TorchScript 和 ONNX 的通用 PyTorch 模型 330
13.5.1 理解 TorchScript 的實(shí)用性 330
13.5.2 使用 TorchScript 進(jìn)行模型追蹤 331
13.5.3 使用 TorchScript 進(jìn)行模型腳本化 334
13.6 在 C 中運(yùn)行 PyTorch 模型 336
13.7 使用 ONNX 導(dǎo)出 PyTorch 模型 340
13.8 在云端部署 PyTorch 模型 342
13.8.1 使用 PyTorch 與 AWS 342
13.8.2 使用 AWS 實(shí)例部署 PyTorch 模型 342
13.8.3 使用 TorchServe 與 Amazon SageMaker 344
13.8.4 在 Google Cloud 上部署 PyTorch 模型 345
13.8.5 使用 Azure 部署 PyTorch 模型 346
13.8.6 使用 Azure 的 DSVM 347
13.8.7 Azure 機(jī)器學(xué)習(xí)服務(wù) 347
13.9 本章小結(jié) 348
13.10 參考文獻(xiàn) 348
第 14 章 移動(dòng)設(shè)備上的 PyTorch 353
14.1 在 Android 上部署 PyTorch 模型 354
14.1.1 將 PyTorch 模型轉(zhuǎn)換為適合移動(dòng)設(shè)備的格式 354
14.1.2 設(shè)置 Android 應(yīng)用程序開發(fā)環(huán)境 354
14.2 在 Android 應(yīng)用程序中使用手機(jī)相機(jī)捕捉圖像 357
14.2.1 在應(yīng)用啟動(dòng)時(shí)啟用相機(jī) 358
14.2.2 在相機(jī)捕獲的圖像上運(yùn)行機(jī)器學(xué)習(xí)模型推理 362
14.2.3 在 Android 移動(dòng)設(shè)備上啟動(dòng)應(yīng)用程序 366
14.3 在 iOS 上構(gòu)建 PyTorch 應(yīng)用 370
14.3.1 設(shè)置 iOS 開發(fā)環(huán)境 371
14.3.2 在 iOS 應(yīng)用中使用手機(jī)攝像頭捕獲圖像 373
14.3.3 在攝像頭捕獲的圖像上運(yùn)行機(jī)器學(xué)習(xí)模型推理 375
14.4 本章小結(jié) 380
14.5 參考文獻(xiàn) 380
第 15 章 使用 PyTorch 進(jìn)行快速原型開發(fā) 383
15.1 使用 fastai 在幾分鐘內(nèi)設(shè)置模型訓(xùn)練 384
15.1.1 設(shè)置 fastai 和加載數(shù)據(jù) 384
15.1.2 使用 fastai 訓(xùn)練 MNIST 模型 386
15.1.3 使用 fastai 評(píng)估和解釋模型 387
15.2 使用 PyTorch Lightning 在硬件上訓(xùn)練模型 389
15.2.1 在 PyTorch Lightning 中定義模型組件 390
15.2.2 使用 PyTorch Lightning 訓(xùn)練和評(píng)估模型 391
15.3 使用 PyTorch 分析器分析 MNIST 模型推理 394
15.3.1 在 CPU 上進(jìn)行分析 394
15.3.2 在 GPU 上分析模型推理 399
15.4 本章小結(jié) 401
15.5 參考文獻(xiàn) 402
第 16 章 PyTorch 和 AutoML 403
16.1 使用 AutoML 尋找最佳神經(jīng)架構(gòu) 403
16.1.1 使用 Auto-PyTorch 實(shí)現(xiàn)最優(yōu) MNIST 模型搜索 404
16.1.2 加載 MNIST 數(shù)據(jù)集 404
16.1.3 使用 Auto-PyTorch 進(jìn)行神經(jīng)架構(gòu)搜索 405
16.1.4 可視化最優(yōu) AutoML 模型 406
16.2 使用 Optuna 進(jìn)行超參數(shù)搜索 410
16.2.1 定義模型架構(gòu)和加載數(shù)據(jù)集 410
16.2.2 定義模型訓(xùn)練程序和優(yōu)化計(jì)劃 412
16.2.3 運(yùn)行 Optuna 的超參數(shù)搜索 413
16.3 本章小結(jié) 416
16.4 參考文獻(xiàn) 416
第 17 章 PyTorch 與可解釋人工智能 419
17.1 PyTorch 中的模型可解釋性 419
17.1.1 手寫數(shù)字分類器訓(xùn)練 420
17.1.2 可視化模型的卷積濾波器 422
17.1.3 可視化模型的特征圖 424
17.2 使用 Captum 解釋模型 426
17.2.1 設(shè)置Captum 426
17.2.2 探索 Captum 的可解釋性工具 427
17.3 本章小結(jié) 431
17.4 參考文獻(xiàn) 431
第 18 章 推薦系統(tǒng)與 PyTorch 433
18.1 利用深度學(xué)習(xí)構(gòu)建推薦系統(tǒng) 434
18.1.1 理解電影推薦系統(tǒng)數(shù)據(jù)集 434
18.1.2 理解基于嵌入的推薦系統(tǒng) 435
18.2 理解和處理 MovieLens 數(shù)據(jù)集 437
18.2.1 下載 MovieLens 數(shù)據(jù)集 437
18.2.2 加載和分析 MovieLens 數(shù)據(jù)集 438
18.2.3 處理 MovieLens 數(shù)據(jù)集 440
18.2.4 創(chuàng)建 MovieLens 數(shù)據(jù)加載器 442
18.3 訓(xùn)練和評(píng)估推薦系統(tǒng)模型 443
18.3.1 定義 EmbeddingNet 架構(gòu) 443
18.3.2 訓(xùn)練 EmbeddingNet 446
18.3.3 評(píng)估訓(xùn)練好的 EmbeddingNet 模型 448
18.4 使用訓(xùn)練好的模型構(gòu)建推薦系統(tǒng) 449
18.5 本章小結(jié) 452
18.6 參考文獻(xiàn) 452
第 19 章 PyTorch 和 Hugging Face 453
19.1 在 PyTorch 背景下理解 Hugging Face 453
19.1.1 探索與 PyTorch 相關(guān)的 Hugging Face 組件 453
19.1.2 將 Hugging Face 與 PyTorch 集成 455
19.2 使用 Hugging Face Hub 獲取預(yù)訓(xùn)練模型 457
19.3 使用 Hugging Face 數(shù)據(jù)集庫與 PyTorch 460
19.4 使用 Accelerate 加速 PyTorch 模型訓(xùn)練 464
19.5 使用 Optimum 優(yōu)化 PyTorch 模型部署 466
19.6 本章小結(jié) 470
19.7 參考文獻(xiàn) 471