深度學習框架PyTorch:入門與實踐
陳雲 著
定價 65.00
齣版社: 電子工業齣版社
ISBN:9787121330773
版次:1
商品編碼:12261129
品牌:Broadview
齣版時間:2018-01-01
叢書名 :博文視點AI係列
作 譯 者:廖星宇
齣版時間:2017-09 韆 字 數:299
版 次:01-01 頁 數:232
開 本:16開
裝 幀:
I S B N :9787121326202
換 版:
所屬分類:科技 >> 計算機 >> 計算機科學
紙質書定價:¥79.0
深度學習如今已經成為瞭科技領域&炙手可熱的技術,在本書中,我們將幫助你入門深度學習的領域。本書將從人工智能的介紹入手,瞭解機器學習和深度學習的基礎理論,並學習如何用PyTorch框架對模型進行搭建。通過閱讀本書,你將會學習到機器學習中的綫性迴歸和logistic迴歸,深度學習的優化方法,多層全連接神經網絡,捲積神經網絡,循環神經網絡以及生成對抗網絡,同時從零開始對PyTorch進行學習,瞭解PyTorch基礎及如何用其進行模型的搭建,&後通過實戰瞭解&前沿的研究成果和PyTorch在實際項目中的應用。第1 章深度學習介紹1
1.1 人工智能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 數據挖掘、機器學習與深度學習. . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 數據挖掘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 機器學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 深度學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 學習資源與建議. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
第2 章深度學習框架11
2.1 深度學習框架介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 PyTorch 介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 什麼是PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 為何要使用PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 配置PyTorch 深度學習環境. . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 操作係統的選擇. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Python 開發環境的安裝. . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 PyTorch 的安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
第3 章多層全連接神經網絡24
3.1 熱身:PyTorch 基礎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Tensor(張量) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Variable(變量) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.3 Dataset(數據集) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.4 nn.Module(模組) . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.5 torch.optim(優化) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.6 模型的保存和加載. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 綫性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 一維綫性迴歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.3 多維綫性迴歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.4 一維綫性迴歸的代碼實現. . . . . . . . . . . . . . . . . . . . . . 35
3.2.5 多項式迴歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 分類問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.1 問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 Logistic 起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.3 Logistic 分布. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.4 二分類的Logistic 迴歸. . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.5 模型的參數估計. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.6 Logistic 迴歸的代碼實現. . . . . . . . . . . . . . . . . . . . . . . 45
3.4 簡單的多層全連接前嚮網絡. . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1 模擬神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.2 單層神經網絡的分類器. . . . . . . . . . . . . . . . . . . . . . . . 50
3.4.3 激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.4 神經網絡的結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.5 模型的錶示能力與容量. . . . . . . . . . . . . . . . . . . . . . . . 55
3.5 深度學習的基石:反嚮傳播算法. . . . . . . . . . . . . . . . . . . . . . . 57
3.5.1 鏈式法則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.2 反嚮傳播算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5.3 Sigmoid 函數舉例. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6 各種優化算法的變式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.1 梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.2 梯度下降法的變式. . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7 處理數據和訓練模型的技巧. . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.1 數據預處理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.2 權重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.3 防止過擬閤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.8 多層全連接神經網絡實現MNIST 手寫數字分類. . . . . . . . . . . . . . 69
3.8.1 簡單的三層全連接神經網絡. . . . . . . . . . . . . . . . . . . . . 70
3.8.2 添加激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.8.3 添加批標準化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.8.4 訓練網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
第4 章捲積神經網絡76
4.1 主要任務及起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2 捲積神經網絡的原理和結構. . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2.1 捲積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.2 池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.2.3 全連接層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.4 捲積神經網絡的基本形式. . . . . . . . . . . . . . . . . . . . . . 85
4.3 PyTorch 捲積模塊. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.1 捲積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.2 池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.3 提取層結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.3.4 如何提取參數及自定義初始化. . . . . . . . . . . . . . . . . . . . 91
4.4 捲積神經網絡案例分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.4.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5 再實現MNIST 手寫數字分類. . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6 圖像增強的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7 實現cifar10 分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
第5 章循環神經網絡111
5.1 循環神經網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.1 問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.2 循環神經網絡的基本結構. . . . . . . . . . . . . . . . . . . . . . 112
5.1.3 存在的問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2 循環神經網絡的變式:LSTM 與GRU . . . . . . . . . . . . . . . . . . . . 116
5.2.1 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2.2 GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.3 收斂性問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3 循環神經網絡的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . . 122
5.3.1 PyTorch 的循環網絡模塊. . . . . . . . . . . . . . . . . . . . . . . 122
5.3.2 實例介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4 自然語言處理的應用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.1 詞嵌入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.2 詞嵌入的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.3 N Gram 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.4 單詞預測的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . 134
5.4.5 詞性判斷. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.4.6 詞性判斷的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . 137
5.5 循環神經網絡的更多應用. . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.1 Many to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.2 Many to Many(shorter) . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.3 Seq2seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.4 CNN+RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
第6 章生成對抗網絡144
6.1 生成模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.1.1 自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.1.2 變分自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.2 生成對抗網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.1 何為生成對抗網絡. . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.2 生成對抗網絡的數學原理. . . . . . . . . . . . . . . . . . . . . . 160
6.3 Improving GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.1 Wasserstein GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.2 Improving WGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.4 應用介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.1 Conditional GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.2 Cycle GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
第7 章深度學習實戰173
7.1 實例一——貓狗大戰:運用預訓練捲積神經網絡進行特徵提取與預測. 173
7.1.1 背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.1.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.2 實例二——Deep Dream:探索捲積神經網絡眼中的世界. . . . . . . . . 183
7.2.1 原理介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.2.2 預備知識:backward . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.2.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
7.2.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.3 實例三——Neural-Style:使用PyTorch 進行風格遷移. . . . . . . . . . . 196
7.3.1 背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.3.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.3.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.3.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.4 實例四——Seq2seq:通過RNN 實現簡單的Neural Machine Translation . 205
7.4.1 背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
7.4.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . .
這本書我最近剛拿到手,翻瞭翻前幾章,感覺 PyTorch 的入門真的比想象中要容易上手一些。作者在介紹基本概念的時候,比如張量(Tensor)的操作、自動求導(Autograd)的原理,都寫得相當清晰,有很多代碼示例,這一點我非常喜歡。不像有些書,光講理論,看得人雲裏霧裏。這裏麵給的例子都挺貼近實際應用的,不是那種脫離實際的“hello world”。比如,它一開始就讓你搭建一個簡單的神經網絡,處理一些基礎的數據集,雖然簡單,但整個流程都走通瞭,非常有成就感。而且,它還介紹瞭 PyTorch 的一些核心模塊,像 `nn.Module`、`optim`、`DataLoader`,這些都是構建模型必不可少的組件。我特彆關注瞭它對 GPU 加速的講解,這對於深度學習來說至關重要,書中給齣的配置和使用方法都很詳細,讓我這個初學者也能順利地將模型放到 GPU 上跑,大大提升瞭訓練速度。整體來說,這本書給我最大的感受就是“上手快,看得懂”,對於想要快速入門 PyTorch 的人來說,應該是個不錯的選擇。
評分這本書的優點在於它提供瞭一個非常全麵的 PyTorch 學習路徑。從最基礎的張量操作,到復雜的深度學習模型構建,再到模型的訓練和部署,基本上涵蓋瞭 PyTorch 開發的整個生命周期。我尤其贊賞它在介紹 PyTorch 的一些高級特性時,比如分布式訓練、模型量化等,都給齣瞭清晰的解釋和相應的代碼示例。這對於想要將深度學習模型應用到大規模場景中的開發者來說,非常有幫助。書中還穿插瞭一些關於深度學習理論的講解,比如反嚮傳播算法的數學原理,梯度下降的不同優化器,這些內容雖然不是 PyTorch 的核心,但對於理解模型的訓練過程至關重要。它並沒有把這些理論講得過於枯燥,而是通過結閤 PyTorch 的接口,讓你能更直觀地看到理論是如何在實踐中落地的。此外,書中的排版也很舒服,代碼清晰,圖文並茂,閱讀起來不會感到疲勞。總的來說,這本書是一本非常紮實的 PyTorch 教材,適閤那些希望深入理解 PyTorch 並將其應用於實際項目中的讀者。
評分我之前對深度學習一直有點摸不著頭腦,感覺概念太多,公式也看得頭疼。偶然間看到這本書,抱著試試看的心態買迴來的。這本書的講解方式真的讓我耳目一新。它沒有上來就堆砌一堆復雜的數學公式,而是通過非常直觀的圖示和生動的比喻來解釋深度學習中的核心思想,比如捲積神經網絡(CNN)是如何提取圖像特徵的,循環神經網絡(RNN)是如何處理序列數據的,這些原本聽起來很抽象的概念,通過書中的講解,變得清晰易懂。我尤其欣賞它在介紹模型結構的時候,不僅給齣瞭代碼實現,還附帶瞭對模型內部工作原理的細緻剖析,讓你知道為什麼這樣設計模型能起作用。書中的案例也涵蓋瞭圖像識彆、自然語言處理等多個熱門領域,並且提供瞭完整的實現代碼,這對我這種喜歡動手實踐的人來說,簡直是福音。我跟著書中的例子,成功地復現瞭一些經典的深度學習模型,這種成就感是無與倫比的。它也強調瞭模型的調優和評估,這部分內容對於提高模型性能非常有幫助,讓我明白瞭光會搭建模型是不夠的,還需要知道如何讓它做得更好。
評分說實話,我買這本書的初衷是因為看到它標題裏有“深度學習入門”和“PyTorch實踐”這些字眼,想著能夠係統地學習一下。書的內容確實比較豐富,它不僅僅局限於 PyTorch 的基本用法,還深入探討瞭一些更高級的主題。比如,它詳細介紹瞭如何使用 PyTorch 來實現一些經典的深度學習模型,像是 AlexNet、VGG、ResNet 等等,並且還對比瞭這些模型在實際應用中的優劣。此外,它還涉及瞭一些模型部署的內容,比如如何將訓練好的模型導齣為 ONNX 格式,以及在不同平颱上的運行方式,這對於想要將模型應用到實際産品中的開發者來說,非常有價值。書中還提到瞭遷移學習和微調(fine-tuning)的概念,並給齣瞭相應的實踐方法,這對於在小數據集上訓練模型非常有用。我個人覺得,這本書的深度和廣度都做得不錯,既有入門級的講解,也有進階級的指導,能夠滿足不同層次讀者的需求。它不是那種“速成”的書,而是需要花時間去理解和消化,但一旦掌握瞭,收獲會非常大。
評分我最近在工作中遇到瞭一個需要用 PyTorch 來處理一些圖像數據的問題,之前我對 PyTorch 瞭解不多,就找瞭這本書來學習。這本書的重點非常突齣,就是“實踐”。它提供的代碼示例都非常實用,而且都圍繞著具體的應用場景展開,比如圖像分類、目標檢測、圖像分割等等。書中的講解也很到位,它會一步步地告訴你如何加載數據、預處理數據、構建模型、訓練模型、評估模型,以及如何進行模型優化。最讓我印象深刻的是,它在講解一些復雜的模型時,比如 Faster R-CNN 或者 Mask R-CNN,並沒有直接給齣復雜的代碼,而是先從它們的原理齣發,然後逐步拆解,讓你理解其中的邏輯,最後再給齣相應的代碼實現。這樣的講解方式,讓我能夠深入理解模型的內在機製,而不是簡單地復製代碼。這本書還提供瞭一些關於數據增強和模型正則化的技巧,這些都是提升模型性能的關鍵。總而言之,這本書的實踐性非常強,非常適閤那些希望通過實際項目來學習 PyTorch 的人。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有