深入淺出PyTorch:從模型到源碼

深入淺出PyTorch:從模型到源碼
定價:539
NT $ 539
  • 作者:張校捷
  • 出版社:電子工業出版社
  • 出版日期:2020-04-01
  • 語言:簡體中文
  • ISBN10:7121386410
  • ISBN13:9787121386411
  • 裝訂:平裝 / 428頁 / 16k / 19 x 26 x 2.14 cm / 普通級 / 單色印刷 / 初版
 

內容簡介

本書從機器學習和深度學習的基礎概念入手,由淺到深地詳細介紹了PyTorch深度學習框架的知識,主要包含深度學習的基礎知識,如神經網路的優化演算法、 神經網路的模組等;同時也包含了深度學習的進階知識,如使用 PyTorch構建複雜的深度學習模型,以及前沿的深度學習模型的介紹等。另外,為了加深讀者對 PyTorch深度學習框架的理解和掌握,本書還介紹了PyTorch的原始程式碼結構,包括該框架的Python語言前端和C++語言後端的原始程式碼結構。

作為一本面向初中級讀者的技術類圖書,本書既可以作為深度學習框架 PyTorch 入門的參考書籍,也可以作為PyTorch深度學習框架的結構和原始程式碼的閱讀指南使用。
 
 

作者介紹

張校捷,英偉達(NVIDIA)資深深度學習架構工程師,負責基於CUDA的深度學習框架的優化。目前主要使用的技術棧是作為深度學習框架後端的 C/C++/CUDA,以及深度學習框架前端的Python,對主流的深度學習框架如PyTorch和TensorFlow比較熟悉,並精通其在電腦視 覺(CV)和自然語言處理(NLP)方面的具體應用。作者多次作為專題演講嘉賓,受邀參加CSDN主辦的技術大會。
 

目錄

第1章 深度學習概念簡介 1
1.1 深度學習的歷史 1
1.1.1 深度學習的發展過程 1
1.1.2 深度學習在電腦視覺領域的發展 3
1.1.3 深度學習在自然語言處理和其他領域的發展 6
1.2 機器學習基本概念 7
1.2.1 機器學習的主要任務 8
1.2.2 機器模型的類型 9
1.2.3 損失函數以及模型的擬合 11
1.3 深度學習基本概念 14
1.3.1 向量、矩陣和張量及其運算 15
1.3.2 張量的存儲 19
1.3.3 神經元的概念 19
1.4 輸入資料的表示方式 20
1.4.1 圖像資料的表示方式 20
1.4.2 文本資料的表示方式 22
1.4.3 音訊資料的表示方式 23
1.5 線性變換和啟動函數 26
1.5.1 全連接線性變換 26
1.5.2 卷積線性變換 28
1.5.3 啟動函數 29
1.6 鏈式求導法則和反向傳播 32
1.6.1 基於鏈式求導的梯度計算 32
1.6.2 啟動函數的導數 34
1.6.3 數值梯度 36
1.7 損失函數和優化器 37
1.7.1 常用的損失函數 37
1.7.2 基於梯度的優化器 38
1.7.3 學習率衰減和權重衰減 42
1.8 本章總結 43

第2章 PyTorch深度學習框架簡介 44
2.1 深度學習框架簡介 44
2.1.1 深度學習框架中的張量 44
2.1.2 深度學習框架中的計算圖 45
2.1.3 深度學習框架中的自動求導和反向傳播 46
2.2 PyTorch框架歷史和特性更迭 47
2.3 PyTorch的安裝過程 49
2.4 PyTorch包的結構 52
2.4.1 PyTorch的主要模組 52
2.4.2 PyTorch的輔助工具模組 57
2.5 PyTorch中張量的創建和維度的操作 59
2.5.1 張量的資料類型 59
2.5.2 張量的創建方式 61
2.5.3 張量的存放裝置 65
2.5.4 和張量維度相關的方法 66
2.5.5 張量的索引和切片 69
2.6 PyTorch中張量的運算 70
2.6.1 涉及單個張量的函數運算 70
2.6.2 涉及多個張量的函數運算 72
2.6.3 張量的極值和排序 73
2.6.4 矩陣的乘法和張量的縮並 75
2.6.5 張量的拼接和分割 77
2.6.6 張量維度的擴增和壓縮 79
2.6.7 張量的廣播 80
2.7 PyTorch中的模組簡介 82
2.7.1 PyTorch中的模組類 82
2.7.2 基於模組類的簡單線性回歸類 82
2.7.3 線性回歸類的產生實體和方法調用 84
2.8 PyTorch的計算圖和自動求導機制 87
2.8.1 自動求導機制簡介 87
2.8.2 自動求導機制實例 88
2.8.3 梯度函數的使用 89
2.8.4 計算圖生成的控制 89
2.9 PyTorch的損失函數和優化器 90
2.9.1 損失函數 90
2.9.2 優化器 92
2.10 PyTorch中資料的輸入和預處理 96
2.10.1 數據載入類 96
2.10.2 映射類型的資料集 97
2.10.3 torchvision工具包的使用 97
2.10.4 可反覆運算類型的資料集 100
2.11 PyTorch模型的保存和載入 101
2.11.1 模組和張量的序列化及反序列化 101
2.11.2 模組狀態字典的保存和載入 104
2.12 PyTorch數據的視覺化 105
2.12.1 TensorBoard的安裝和使用 105
2.12.2 TensorBoard常用的視覺化資料類型 108
2.13 PyTorch模型的並行化 110
2.13.1 PyTorch的資料並行化 111
2.13.1 PyTorch的分散式資料並行化 112
2.14 本章總結 116

第3章 PyTorch電腦視覺模組 119
3.1 電腦視覺基本概念 119
3.1.1 電腦視覺任務簡介 119
3.1.2 基礎圖像變換操作 120
3.1.3 圖像特徵提取 123
3.1.4 濾波器的概念 125
3.2 線性層 126
3.3 卷積層 128
3.4 歸一化層 137
3.5 池化層 144
3.6 丟棄層 149
3.7 模組的組合 151
3.8 特徵提取 153
3.9 模型初始化 157
3.10 常見模型結構 160
3.10.1 InceptionNet的結構 161
3.10.2 ResNet的結構 164
3.11 本章總結 167

第4章 PyTorch機器視覺案例 169
4.1 常見電腦視覺任務和資料集 169
4.1.1 圖像分類任務簡介 169
4.1.2 目標檢測任務簡介 170
4.1.3 圖像分割任務簡介 171
4.1.4 圖像生成任務簡介 172
4.1.5 常用深度學習公開資料集 173
4.2 手寫數位識別:LeNet 176
4.2.1 深度學習工程的結構 176
4.2.2 MNIST資料集的準備 177
4.2.3 LeNet網路的搭建 179
4.2.4 LeNet網路的訓練和測試 182
4.2.5 超參數的修改和argparse庫的使用 185
4.3 圖像分類:ResNet和InceptionNet 187
4.3.1 ImageNet資料集的使用 187
4.3.2 ResNet網路的搭建 189
4.3.3 InceptionNet網路的搭建 194
4.4 目標檢測:SSD 204
4.4.1 SSD的骨架網路結構 204
4.4.2 SSD的特徵提取網路結構 205
4.4.3 錨點框和選框預測 210
4.4.4 輸入資料的預處理 214
4.4.5 損失函數的計算 216
4.4.6 模型的預測和非極大抑制演算法 218
4.5 圖像分割:FCN和U-Net 219
4.5.1 FCN網路結構 220
4.5.2 U-Net網路結構 225
4.6 圖像風格遷移 229
4.6.1 圖像風格遷移演算法介紹 229
4.6.2 輸入圖像的特徵提取 231
4.6.3 輸入圖像的優化 234
4.7 生成模型:VAE和GAN 236
4.7.1 變分自編碼器介紹 237
4.7.2 變分自編碼器的實現 239
4.7.3 生成對抗網路介紹 242
4.7.4 生成對抗網路的實現 244
4.8 本章總結 249

第5章 PyTorch自然語言處理模組 251
5.1 自然語言處理基本概念 251
5.1.1 機器翻譯相關的自然語言處理研究 251
5.1.2 其他領域的自然語言處理研究 253
5.1.3 自然語言處理中特徵提取的預處理 254
5.1.4 自然語言處理中詞頻特徵的計算方法 256
5.1.5 自然語言處理中TF-IDF特徵的計算方法 258
5.2 詞嵌入層 261
5.3 迴圈神經網路層:GRU和LSTM 267
5.3.1 簡單迴圈神經網路 267
5.3.2 長短時記憶網路(LSTM) 269
5.3.3 門控迴圈單元(GRU) 272
5.4 注意力機制 280
5.5 自注意力機制 284
5.5.1 迴圈神經網路的問題 284
5.5.2 自注意力機制的基礎結構 285
5.5.3 使用自注意力機制來構建Seq2Seq模型 288
5.5.4 PyTorch中自注意力機制的模組 290
5.5.5 Pytorch中的Transformer模組 292
5.6 本章總結 293

第6章 PyTorch自然語言處理案例 295
6.1 word2vec演算法訓練詞向量 295
6.1.1 單詞表的創建 295
6.1.2 word2vec演算法的實現 299
6.1.3 word2vec演算法的特性 301
6.2 基於迴圈神經網路的情感分析 302
6.3 基於迴圈神經網路的語言模型 305
6.3.1 語言模型簡介 305
6.3.2 語言模型的代碼 308
6.4 Seq2Seq模型及其應用 311
6.4.1 Seq2Seq模型的結構 311
6.4.2 Seq2Seq模型編碼器的代碼 312
6.4.3 Seq2Seq模型注意力機制的代碼 315
6.4.4 Seq2Seq模型解碼器的代碼 317
6.5 BERT模型及其應用 321
6.5.1 BERT模型的結構 321
6.5.2 BERT模型的訓練方法 325
6.5.3 BERT模型的微調 327
6.6 本章總結 329

第7章 其他重要模型 330
7.1 基於寬深模型的推薦系統 330
7.1.1 推薦系統介紹 330
7.1.2 寬深模型介紹 331
7.2 DeepSpeech模型和CTC損失函數 335
7.2.1 語音辨識模型介紹 335
7.2.2 CTC損失函數 337
7.3 使用Tacotron和WaveNet進行語音合成 342
7.3.1 Tacotron模型中基於Seq2Seq的梅爾篩檢程式特徵合成 343
7.3.2 Tacotron模型的代碼 344
7.3.3 WaveNet模型介紹 352
7.3.4 因果卷積模組介紹 355
7.3.5 因果卷積模組的代碼 357
7.3.6 WaveNet模型的代碼 358
7.4 基於DQN的強化學習演算法 360
7.4.1 強化學習的基礎概念 361
7.4.2 強化學習的環境 362
7.4.3 DQN模型的原理 363
7.4.4 DQN模型及其訓練過程 365
7.5 使用半精度浮點數訓練模型 369
7.5.1 半精度浮點數的介紹 370
7.5.2 半精度模型的訓練 371
7.5.3 apex擴展包的使用 372
7.6 本章總結 373

第8章 PyTorch高級應用 375
8.1 PyTorch自訂啟動函數和梯度 375
8.2 在PyTorch中編寫擴展 377
8.3 正向傳播和反向傳播的鉤子 385
8.4 PyTorch的靜態計算圖 388
8.5 靜態計算圖模型的保存和使用 393
8.6 本章總結 396

第9章 PyTorch原始程式碼解析 397
9.1 ATen張量計算庫簡介 397
9.2 C++的Python介面 400
9.3 csrc模組簡介 404
9.4 autograd和自動求導機制 407
9.5 C10張量計算庫簡介 408
9.6 本章總結 409
參考文獻 410
網路書店 類別 折扣 價格
  1. 新書
    $539