深入理解PyTorch Mastering PyTorch : Create and deploy deep learning models from CNNs to multimodal models, LLMs, and beyond, 2/e
[印]阿施·拉賈漢·賈 著 劉禕 譯
- 出版商: 清華大學
- 出版日期: 2025-04-01
- 售價: $954
- 語言: 簡體中文
- ISBN: 7302684529
- ISBN-13: 9787302684527
-
相關分類:
DeepLearning
- 此書翻譯自: Mastering PyTorch : Create and deploy deep learning models from CNNs to multimodal models, LLMs, and beyond, 2/e (Paperback)
下單後立即進貨 (約4週~6週)
商品描述
《深入理解PyTorch》詳細闡述了與 PyTorch 相關的基本解決方案,主要包括深度捲積神經網絡架構、結合 CNN 和LSTM、深度循環模型架構、高級混合模型、圖神經網絡、使用 PyTorch 生成音樂和文本、神經風格遷移、深度捲積 GAN、利用擴散生成圖像、深度強化學習、模型訓練優化、將 PyTorch 模型投入生產、移動設備上的 PyTorch、使用 PyTorch 進行快速原型開發、PyTorch 和 AutoML、PyTorch 與可解釋人工智能、推薦系統與 PyTorch、PyTorch 和 Hugging Face 等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
作者簡介
阿施·拉賈漢·賈,擁有IIT Roorkee(印度)電氣工程學士學位,EPFL(瑞士)計算機科學碩士學位。EPFL(瑞士)計算機科學碩士學位,Quantic商學院(華盛頓)MBA學位,並都以優異成績畢業。Ashish曾在甲骨文、索尼及初創科技公司等多家科技公司工作,在Revolut擔任機器學習工程師。
目錄大綱
目錄
第 1 章 PyTorch 深度學習概述 1
1.1 深度學習回顧 2
1.2 優化計劃 10
1.3 PyTorch 庫與 TensorFlow 的對比 13
1.3.1 張量模塊 14
1.3.2 PyTorch 模塊 17
1.3.3 使用 PyTorch 訓練神經網絡 20
1.4 本章小結 30
1.5 參考文獻 30
第 2 章 深度捲積神經網絡架構 31
2.1 為什麽 CNN 如此強大 31
2.2 CNN 架構的演變 34
2.3 從頭開始開發 LeNet 36
2.3.1 使用 PyTorch 構建 LeNet 38
2.3.2 訓練 LeNet 43
2.3.3 測試 LeNet 44
2.4 微調 AlexNet 模型 46
2.5 運行預訓練的 VGG 模型 56
2.6 GoogLeNet 和 Inception v3 58
2.6.1 Inception 模塊 58
2.6.2 1×1 捲積 61
2.6.3 全局平均池化 61
2.6.4 輔助分類器 61
2.6.5 Inception v3 62
2.7 ResNet 和 DenseNet 架構 65
2.7.1 ResNet 65
2.7.2 DenseNet 68
2.8 EfficientNet 和 CNN 架構的未來 72
2.9 本章小結 74
2.10 參考文獻 74
第 3 章 結合 CNN 和 LSTM 75
3.1 構建帶有 CNN 和 LSTM 的神經網絡 75
3.2 使用 PyTorch 構建圖像字幕生成器 77
3.2.1 下載圖像字幕數據集 78
3.2.2 預處理字幕(文本)數據 79
3.2.3 預處理圖像數據 81
3.2.4 定義圖像字幕數據加載器 82
3.2.5 定義 CNN-LSTM 模型 84
3.2.6 訓練 CNN-LSTM 模型 87
3.2.7 使用訓練好的模型生成圖像字幕 90
3.3 本章小結 92
3.4 參考文獻 92
第 4 章 深度循環模型架構 93
4.1 探索循環網絡的演變 94
4.1.1 循環神經網絡的類型 94
4.1.2 RNN 96
4.1.3 雙向 RNN 97
4.1.4 LSTM 98
4.1.5 擴展和雙向 LSTM 100
4.1.6 多維 RNN 100
4.1.7 堆疊 LSTM 100
4.1.8 GRU 101
4.1.9 網格 LSTM 101
4.1.10 門控正交循環單元 102
4.2 訓練 RNN 進行情感分析 102
4.2.1 加載和預處理文本數據集 103
4.2.2 實例化並訓練模型 108
4.3 構建雙向 LSTM 113
4.3.1 加載和預處理文本數據集 113
4.3.2 實例化並訓練 LSTM 模型 115
4.4 GRU 和基於註意力的模型 117
4.4.1 GRU 和 PyTorch 117
4.4.2 基於註意力的模型 118
4.5 本章小結 120
4.6 參考文獻 120
第 5 章 高級混合模型 121
5.1 構建用於語言建模的 transformer 模型 121
5.1.1 語言建模回顧 122
5.1.2 transformer 模型架構 122
5.1.3 在 PyTorch 中定義 transformer 模型 127
5.2 從頭開始開發 RandWireNN 模型 133
5.2.1 理解 RandWireNN 133
5.2.2 利用 PyTorch 開發 RandWireNN 134
5.3 本章小結 143
5.4 參考文獻 143
第 6 章 圖神經網絡 145
6.1 圖神經網絡簡介 145
6.1.1 圖神經網絡的直觀理解 146
6.1.2 在圖數據上使用常規 NN 147
6.1.3 通過計算圖理解 GNN 的強大能力 148
6.2 圖學習任務的類型 150
6.2.1 節點級任務 151
6.2.2 邊級任務 152
6.2.3 圖級任務 153
6.3 回顧突出的 GNN 模型 153
6.3.1 GCN 中的圖捲積 154
6.3.2 在圖上使用註意力機制的 GAT 156
6.3.3 執行圖採樣的 GraphSAGE 157
6.3.4 使用PyTorch Geometric 構建圖捲積網絡模型 159
6.3.5 加載和探索引用網絡數據集 159
6.3.6 構建一個簡單的基於神經網絡的節點分類器 162
6.3.7 構建用於節點分類的 GCN 模型 167
6.4 使用 PyTorch Geometric 訓練 GAT 模型 171
6.5 本章小結 176
6.6 參考文獻 176
第 7 章 使用 PyTorch 生成音樂和文本 177
7.1 使用 PyTorch 構建基於 transformer 的文本生成器 177
7.1.1 訓練基於 transformer 的語言模型 177
7.1.2 保存和加載語言模型 178
7.1.3 使用語言模型生成文本 179
7.2 使用 GPT 模型作為文本生成器 180
7.2.1 使用 GPT-2 實現即用型文本生成 180
7.2.2 使用 PyTorch 的文本生成策略 181
7.2.3 使用 GPT-3 實現文本生成 187
7.3 使用 PyTorch 並通過 LSTM 生成 MIDI 音樂 189
7.3.1 加載 MIDI 音樂數據 189
7.3.2 定義 LSTM 模型和訓練過程 193
7.3.3 訓練並測試音樂生成模型 195
7.4 本章小結 198
7.5 參考文獻 198
第 8 章 神經風格遷移 199
8.1 如何在圖像之間遷移風格 200
8.2 使用 PyTorch 實現神經風格遷移 203
8.2.1 加載內容和風格圖像 203
8.2.2 加載並修剪預訓練的 VGG19 模型 204
8.2.3 構建神經風格遷移模型 206
8.2.4 訓練風格遷移模型 207
8.2.5 嘗試風格遷移系統 211
8.3 本章小結 214
8.4 參考文獻 214
第 9 章 深度捲積 GAN 215
9.1 定義生成器和鑒別器網絡 216
9.2 使用 PyTorch 訓練 DCGAN 218
9.2.1 定義生成器 219
9.2.2 定義鑒別器 221
9.2.3 加載圖像數據集 222
9.2.4 DCGAN 的訓練循環 223
9.3 使用 GAN 進行風格遷移 227
9.3.1 pix2pix 架構 227
9.3.2 pix2pix 生成器 229
9.3.3 pix2pix 鑒別器 233
9.4 本章小結 235
9.5 參考文獻 235
第 10 章 利用擴散生成圖像 237
10.1 理解使用擴散的圖像生成 237
10.1.1 擴散的工作方式 239
10.1.2 訓練一個前向擴散模型 239
10.1.3 執行反向擴散或去噪 242
10.2 訓練一個用於圖像生成的擴散模型 244
10.2.1 使用 Hugging Face 數據集加載數據集 244
10.2.2 使用 torchvision 轉換處理數據集 247
10.2.3 使用 diffusers 為圖像添加噪聲 248
10.2.4 定義 UNet 模型 250
10.2.5 訓練 UNet 模型 251
10.3 使用擴散的文本到圖像生成 256
10.3.1 將文本輸入編碼為嵌入向量 257
10.3.2 在(條件)UNet 模型中攝入額外的文本數據 258
10.4 使用 Stable Diffusion 模型從文本生成圖像 260
10.5 本章小結 263
10.6 參考文獻 263
第 11 章 深度強化學習 265
11.1 回顧強化學習概念 266
11.1.1 算法類型 268
11.1.2 基於模型的強化學習算法 269
11.1.3 無模型的強化學習算法 269
11.2 探討 Q 學習 270
11.3 深度 Q 學習 274
11.3.1 使用兩個獨立的 DNN 275
11.3.2 經驗回放緩沖區 275
11.4 在 PyTorch 中構建 DQN 模型 276
11.4.1 初始化主 CNN 模型和目標 CNN 模型 276
11.4.2 定義經驗回放緩沖區 279
11.4.3 設置環境 279
11.4.4 定義 CNN 優化函數 281
11.4.5 管理和運行回合 282
11.4.6 訓練 DQN 模型以學習 Pong 284
11.5 本章小結 287
11.6 參考文獻 288
第 12 章 模型訓練優化 289
12.1 PyTorch 分佈式訓練 289
12.1.1 以常規方式訓練 MNIST 模型 290
12.1.2 分佈式訓練 MNIST 模型 292
12.2 CUDA 在 GPU 上進行分佈式訓練 300
12.2.1 自動混合精度訓練 302
12.2.2 在 GPU 上的常規模型訓練 302
12.2.3 在GPU 上進行混合精度訓練 304
12.3 本章小結 307
12.4 參考文獻 307
第 13 章 將 PyTorch 模型投入生產 309
13.1 PyTorch 中的模型服務 309
13.1.1 創建 PyTorch 模型推理管道 310
13.1.2 保存和加載訓練模型 310
13.1.3 構建推理管道 312
13.2 構建基礎模型服務器 315
13.2.1 使用Flask 編寫基礎應用程序 316
13.2.2 使用 Flask 構建我們的模型服務器 317
13.2.3 使用 Flask 服務器運行預測 319
13.3 創建模型微服務 321
13.4 使用 TorchServe 提供 PyTorch 模型服務 326
13.4.1 安裝 TorchServe 326
13.4.2 啟動並使用 TorchServe 服務器 326
13.5 導出使用 TorchScript 和 ONNX 的通用 PyTorch 模型 330
13.5.1 理解 TorchScript 的實用性 330
13.5.2 使用 TorchScript 進行模型追蹤 331
13.5.3 使用 TorchScript 進行模型腳本化 334
13.6 在 C++中運行 PyTorch 模型 336
13.7 使用 ONNX 導出 PyTorch 模型 340
13.8 在雲端部署 PyTorch 模型 342
13.8.1 使用 PyTorch 與 AWS 342
13.8.2 使用 AWS 實例部署 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 機器學習服務 347
13.9 本章小結 348
13.10 參考文獻 348
第 14 章 移動設備上的 PyTorch 353
14.1 在 Android 上部署 PyTorch 模型 354
14.1.1 將 PyTorch 模型轉換為適合移動設備的格式 354
14.1.2 設置 Android 應用程序開發環境 354
14.2 在 Android 應用程序中使用手機相機捕捉圖像 357
14.2.1 在應用啟動時啟用相機 358
14.2.2 在相機捕獲的圖像上運行機器學習模型推理 362
14.2.3 在 Android 移動設備上啟動應用程序 366
14.3 在 iOS 上構建 PyTorch 應用 370
14.3.1 設置 iOS 開發環境 371
14.3.2 在 iOS 應用中使用手機攝像頭捕獲圖像 373
14.3.3 在攝像頭捕獲的圖像上運行機器學習模型推理 375
14.4 本章小結 380
14.5 參考文獻 380
第 15 章 使用 PyTorch 進行快速原型開發 383
15.1 使用 fastai 在幾分鐘內設置模型訓練 384
15.1.1 設置 fastai 和加載數據 384
15.1.2 使用 fastai 訓練 MNIST 模型 386
15.1.3 使用 fastai 評估和解釋模型 387
15.2 使用 PyTorch Lightning 在硬件上訓練模型 389
15.2.1 在 PyTorch Lightning 中定義模型組件 390
15.2.2 使用 PyTorch Lightning 訓練和評估模型 391
15.3 使用 PyTorch 分析器分析 MNIST 模型推理 394
15.3.1 在 CPU 上進行分析 394
15.3.2 在 GPU 上分析模型推理 399
15.4 本章小結 401
15.5 參考文獻 402
第 16 章 PyTorch 和 AutoML 403
16.1 使用 AutoML 尋找最佳神經架構 403
16.1.1 使用 Auto-PyTorch 實現最優 MNIST 模型搜索 404
16.1.2 加載 MNIST 數據集 404
16.1.3 使用 Auto-PyTorch 進行神經架構搜索 405
16.1.4 可視化最優 AutoML 模型 406
16.2 使用 Optuna 進行超參數搜索 410
16.2.1 定義模型架構和加載數據集 410
16.2.2 定義模型訓練程序和優化計劃 412
16.2.3 運行 Optuna 的超參數搜索 413
16.3 本章小結 416
16.4 參考文獻 416
第 17 章 PyTorch 與可解釋人工智能 419
17.1 PyTorch 中的模型可解釋性 419
17.1.1 手寫數字分類器訓練 420
17.1.2 可視化模型的捲積濾波器 422
17.1.3 可視化模型的特徵圖 424
17.2 使用 Captum 解釋模型 426
17.2.1 設置Captum 426
17.2.2 探索 Captum 的可解釋性工具 427
17.3 本章小結 431
17.4 參考文獻 431
第 18 章 推薦系統與 PyTorch 433
18.1 利用深度學習構建推薦系統 434
18.1.1 理解電影推薦系統數據集 434
18.1.2 理解基於嵌入的推薦系統 435
18.2 理解和處理 MovieLens 數據集 437
18.2.1 下載 MovieLens 數據集 437
18.2.2 加載和分析 MovieLens 數據集 438
18.2.3 處理 MovieLens 數據集 440
18.2.4 創建 MovieLens 數據加載器 442
18.3 訓練和評估推薦系統模型 443
18.3.1 定義 EmbeddingNet 架構 443
18.3.2 訓練 EmbeddingNet 446
18.3.3 評估訓練好的 EmbeddingNet 模型 448
18.4 使用訓練好的模型構建推薦系統 449
18.5 本章小結 452
18.6 參考文獻 452
第 19 章 PyTorch 和 Hugging Face 453
19.1 在 PyTorch 背景下理解 Hugging Face 453
19.1.1 探索與 PyTorch 相關的 Hugging Face 組件 453
19.1.2 將 Hugging Face 與 PyTorch 集成 455
19.2 使用 Hugging Face Hub 獲取預訓練模型 457
19.3 使用 Hugging Face 數據集庫與 PyTorch 460
19.4 使用 Accelerate 加速 PyTorch 模型訓練 464
19.5 使用 Optimum 優化 PyTorch 模型部署 466
19.6 本章小結 470
19.7 參考文獻 471