總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 自動化基礎理論
 
 
 
 
深入淺出PyTorch:從模型到源碼
 作  者: 張校捷
 出版單位: 電子工業
 出版日期: 2020.04
 進貨日期: 2020/5/13
 ISBN: 9787121386411
 開  本: 16 開    
 定  價: 674
 售  價: 360
  會 員 價: 360
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

英偉達(NVIDIA)公司資深深度學習架構工程師力作!
介紹PyTorch新版本的常用模塊及其底層實現邏輯。
涉及PyTorch基礎操作組合構造複雜的深度學習模型及其這些模型在計算機視覺、自然語言處理、推薦系統、語音識別、語音合成和強化學習中的應用。
介紹近幾年學術界和工業界常用的諸多熱門模型, 如SSD、FCN、GAN、LSTM和BERT等的PyTorch實現。


內容簡介:

本書首先從深度學習的原理出發,介紹如何把深度學習的理論轉換為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


章節試讀:

前言
近年來,以深度學習為代表的人工智能技術正在引領著計算機領域和工業領域的一場革命。如今,我們日常生活中的很多場景都和人工智能領域息息相關。比如,日常生活中經常使用的刷臉支付、智能語音助手,以及正在逐漸投入使用的自動駕駛系統,在這些日常應用中,人工智能都扮演著一個重要的角色。而人工智能在這些領域的應用逐漸將人們從簡單枯燥的重複勞動中解放出來,讓人們能夠投入到更有創造力的活動中去。可以預見,在未來,人工智能將會朝著更加智能,而且能夠在越來越多的場景中替代人類的方向發展,代替人類去完成一些枯燥乏味的勞動。
目前人工智能的實現依賴的是使用深度學習模型在海量的數據上進行訓練。由於深度學習模型是高度模塊化的,因此,可以通過組合不同的模塊來構造不同的深度學習模型以完成相應的任務。為了利用深度學習模型的這個特點,更加快速地進行深度學習模型的構建和開發,人們開發了一系列的深度學習框架。比較有名的深度學習框架包括PyTorch、TensorFlow、Caffe等。這些框架的特點是內置了一系列的基礎模塊,並且能夠使用一定的方式(比如Python語言或者其他配置文件)來控制基礎模塊的組合,構造複雜多樣的深度學習模型。在這些深度學習框架中,PyTorch作為一款入門簡單且運行效率相對較高的深度學習框架正在被越來越多的人使用。特別是在學術界,由於PyTorch的簡單高效,越來越多的研究課題組正在選擇PyTorch作為深度學習的研究工具。在工業領域,PyTorch也逐漸加入了一系列的新功能,方便深度學習模型的部署。作為一款優秀的深度學習框架,PyTorch主要的特點包括能夠無縫地和Python語言做整合,方便深度學習模型的構建和調試,以及使用動態計算圖模型,能夠靈活地實現各種需要的功能等。可以說,PyTorch的設計思想完美地契合了Python語言的設計思想,即簡潔和高效。這也讓PyTorch對初學者非常友好,容易入門和掌握。可以說,PyTorch是易於上手,同時保留了靈活性,能夠構造絕大多數的深度學習模型的一款強大的深度學習框架。
為了介紹這樣一個功能強大的深度學習框架,本書從機器學習和深度學習的基礎概念入手,首先讓讀者對深度學習的基礎操作和主要任務有一定了解,在這個基礎上,結合PyTorch中函數和類的定義介紹PyTorch是如何實現深度學習的這些基礎操作的。接下來介紹了如何使用PyTorch中的這些基礎操作來進行組合,構造複雜的深度學習模型。本書著重介紹了這些複雜的深度學習模型在兩個重要領域(包括計算機視覺(Computer Vision,CV)和自然語言處理(Natural Language Processing,NLP))的應用,可以說,深度學習到目前為止在這兩個領域上都取得了巨大的成功。當然,深度學習的應用不止這兩個領域,本書還介紹了深度學習在其他領域,如推薦系統、語音識別和語音合成,以及強化學習中的應用。同時,為了加深讀者對PyTorch深度學習框架的理解,本書在介紹深度學習模型的同時,還著重介紹了PyTorch的源代碼系統。在少數情況下,讀者可能需要使用C 來定義新的深度學習模塊。因此,本書介紹了PyTorch中如何實現自定義的深度學習模塊。同時,為了讓讀者了解PyTorch的運行機制,還介紹了PyTorch的C 後端是如何工作的,以及這個後端如何和前端的Python結合起來構造一個靈活的深度學習框架系統。從源代碼閱讀的角度來說,本書可以作為源代碼的一個簡單注釋,幫助讀者理解PyTorch各個構成部分的主要作用,以及這些構成部分是如何組合在一起協同工作的。
從以上介紹可以看出,在內容的編排上,本書遵循的是從簡單到複雜,從表面到深入的寫作思想,希望通過本書的介紹來覆蓋初級和中級讀者的需求,成為一本有價值的關於深度學習的參考書。
作為一個逐漸成熟的深度學習框架,PyTorch經歷了一系列的蛻變。從最初的0.1版本到目前最新的1.3版本,PyTorch加入了一系列的模塊和新功能,大大擴展了深度學習框架的靈活性和應用場景,同時也對代碼進行了大量的修正,解決了很多代碼中的錯誤(Bug)。可以說,PyTorch是一個飛速發展的深度學習框架。迄今為止,PyTorch已經能夠覆蓋從學術研究到工業部署的一系列場景,在框架的功能和性能方面有了飛躍的提升。相信在未來,隨著基於深度學習模型的人工智能應用的逐漸推廣,PyTorch作為一個流行的深度學習框架將會得到更廣泛的應用,同時其功能和性能也將得到更多的提升。
因作者水平有限,書中錯漏之處難免,懇請讀者批評、指正。

作 者

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。