PyTorch 教程 : 21個項目玩轉 PyTorch 實戰

王飛 等,何健偉,林宏彬,史周安 著

  • 出版商: 北京大學
  • 出版日期: 2022-12-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 292
  • 裝訂: 平裝
  • ISBN: 730133446X
  • ISBN-13: 9787301334461
  • 相關分類: DeepLearning
  • 立即出貨

買這商品的人也買了...

商品描述

PyTorch 是基於Torch 庫的開源機器學習庫,它主要由Meta
(原Facebook)的人工智能研究實驗室開發,在自然語言處理和計算機視覺領域都具有廣泛的應用。
本書介紹了簡單且經典的入門項目,方便快速上手,如MNIST數字識別,
讀者在完成項目的過程中可以了解數據集、模型和訓練等基礎概念。
本書還介紹了一些實用且經典的模型,如R-CNN 模型,通過這個模型的學習,
讀者可以對目標檢測任務有一個基本的認識,對於基本的網絡結構原理有一定的了解。
另外,本書對於當前比較熱門的生成對抗網絡和強化學習也有一定的介紹,方便讀者拓寬視野,掌握前沿方向。

本書適合人工智能、機器學習、深度學習方面的人員閱讀,
也適合其他IT 方面從業者,另外,還可以作為相關專業的教材。

作者簡介

王飛
2019年翻譯了PyTorch官方文檔,讀研期間研究方向為自然語言處理,主要是中文分詞、文本分類和數據挖掘。
目前在教育行業工作,探索人工智能技術在教育中的應用。

何健偉
曾任香港大學研究員,研究方向為自然語言處理,目前從事大規模推薦算法架構研究工作。

林宏彬
碩士期間研究方向為自然語言處理,現任阿里巴巴算法工程師,目前從事廣告推薦領域的算法研究工作。

史周安
軟件工程碩士,人工智能技術愛好者、實踐者與探索者。目前從事弱監督學習、遷移學習與醫學圖像相關工作。

目錄大綱

第1章?數字識別
1.1 MNIST數據集2
1.1.1 MNIST 數據集簡介2
1.1.2 導入數據集3
1.2 構建模型4
1.2.1 定義神經網絡4
1.2.2 前向傳播6
1.2.3 計算損失7
1.2.4 反向傳播與更新參數8
1.3 開始訓練8
1.4 觀察模型預測結果9
1.5 總結11
第2章?ImageNet圖像識別模型與CIFAR-10
2.1 圖像分類器13
2.1.1 CIFAR-10數據集簡介13
2.1.2 加載數據集14
2.1.3 定義卷積神經網絡15
2.1.4 定義損失函數和優化器16
2.1.5 訓練網絡16
2.1.6 使用測試集評估17
2.1.7 使用GPU加速19
2.2 ImageNet和圖像識別模型20
2.2.1 ImageNet20
2.2.2 基於ImageNet 的圖像識別模型20
2.3 總結22
第3章?從零構建圖像分類模型
3.1 預訓練模型原理24
3.1.1 狀態字典24
3.1.2 通過設備保存25
3.2 加載ImageNet預訓練模型25
3.3 準備數據27
3.3.1 加載數據集28
3.3.2 使用matplotlib可視化數據29
3.4 開始訓練29
3.5 使用torchvision微調模型31
3.6 觀察模型預測結果31
3.7 固定模型的參數33
3.8 使用tensorbord可視化訓練情況34
3.9 總結35
第4章?文本生成
4.1 RNN原理及其結構37
4.1.1 經典RNN結構37
4.1.2 N VS 1 式RNN結構38
4.1.3 1 VS N RNN結構39
4.1.4 N VS M RNN結構39
4.2 明確任務39
4.3 準備數據40
4.4 構建模型44
4.5 開始訓練45
4.6 觀察交互結果47
4.7 總結49
第5章?目標檢測和實例分割
5.1 快速了解目標檢測51
5.1.1 評估方法51
5.1.2 直觀方法51
5.2 R-CNN系列模型的原理53
5.2.1 R-CNN原理53
5.2.2 Fast R-CNN原理54
5.2.3 Faster R-CNN原理56
5.2.4 Mask R-CNN原理58
5.3 使用torchvison微調模型58
5.3.1 使用Penn-Fudan數據集58
5.3.2 搭建目標檢測模型61
5.3.3 下載必要的工具文件62
5.3.4 改造模型以適應新的數據集62
5.3.5 調用工具文件訓練模型64
5.3.6 評估和測試模型66
5.4 總結68
第6章?人臉檢測與識別
6.1 模型介紹70
6.2 facenet-pytorch庫70
6.3 預訓練模型71
6.4 總結74
第7章?利用DCGAN生成假臉
7.1 GAN及其原理76
7.2 DCGAN簡介77
7.3 實現一個假臉生成模型78
7.3.1 模型設定78
7.3.2 人臉數據集79
7.3.3 實現生成器81
7.3.4 實現判別器83
7.3.5 損失函數和優化器85
7.4 訓練假臉生成模型85
7.4.1 訓練的整體流程86
7.4.2 更新判別器87
7.4.3 更新生成器88
7.5 可視化結果89
7.6 總結91
第8章?pix2pix為黑白圖片上色
8.1 帶約束的生成對抗網絡93
8.2 pix2pix的原理94
8.3 實現圖到圖翻譯模型95
8.3.1 Facade數據集97
8.3.2 U-Net作為生成器100
8.3.3 PatchGAN作為判別器103
8.4 訓練判別器和生成器105
8.4.1 更新判別器107
8.4.2 更新生成器108
8.5 根據立面結構生成房屋圖片109
8.6 黑白圖片自動上色110
8.7 總結111
第9章?Neural-Style與圖像風格遷移
9.1 理解圖像風格遷移算法113
9.1.1 傳統風格遷移113
9.1.2 Neural-Style算法原理114
9.2 加載圖像116
9.3 定義損失模塊118
9.3.1 內容損失模塊118
9.3.2 風格損失模塊119
9.4 導入預訓練模型120
9.5 使用L-BFGS進行梯度下降123
9.6 訓練自己的風格124
9.7 總結126
第10章?對抗機器學習和欺騙模型
10.1 模型的潛在威脅128
10.2 快速梯度符號法128
10.3 攻擊一個圖像識別模型129
10.3.1 被攻擊的模型129
10.3.2 FGSM算法131
10.4 開始攻擊131
10.4.1 攻擊流程132
10.4.2 攻擊結果133
10.5 總結136
第11章?word2vec與詞向量
11.1 詞嵌入作用138
11.2 詞嵌入原理139
11.2.1 CBOW實現139
11.2.2 Skip-Gram實現140
11.3 在PyTorch中實現詞嵌入141
11.3.1 數據準備141
11.3.2 構造模型143
11.3.3 訓練模型143
11.3.4 可視化144
11.4 工具包word2vec結合中文詞嵌入146
11.4.1 word2vec使用146
11.4.2 中文詞嵌入147
11.5 總結147
第12章?命名實體識別
12.1 NER背景介紹149
12.2 LSTM149
12.2.1 LSTM原理150
12.2.2 在PyTorch中使用LSTM152
12.3 CRF155
12.3.1 發射分數和轉移分數156
12.3.2 損失函數157
12.3.3 預測158
12.4 構建模型158
12.4.1 模型結構158
12.4.2 模型代碼159
12.5 開始訓練162
12.6 總結164
第13章?基於AG_NEWS的文本分類
13.1 數據預處理166
13.1.1 原始數據迭代器166
13.1.2 數據處理166
13.2 準備模型168
13.2.1 初始化一個實例169
13.2.2 定義函數訓練和評估模型169
13.3 訓練模型170
13.4 評估和測試模型173
13.4.1 評估模型173
13.4.2 隨機新聞測試173
13.5 總結174
第14章?基於BERT 的文本分類
14.1 transformers數據處理176
14.1.1 加載預訓練的序列化工具176
14.1.2 基本用法177
14.2 微調預訓練模型178
14.2.1 數據集介紹和處理178
14.2.2 導入模型179
14.2.3 定義訓練器180
14.3 總結181
第15章?文本翻譯
15.1 Seq2Seq網絡183
15.2 注意力機制Attention184
15.3 準備數據185
15.4 構建模型189
15.4.1 編碼器190
15.4.2 解碼器191
15.4.3 注意力機制解碼器192
15.5 開始訓練193
15.5.1 準備訓練數據194
15.5.2 訓練技巧Teacher Forcing194
15.5.3 訓練模型194
15.6 觀察模型效果198
15.6.1 評估模型198
15.6.2 可視化注意力201
15.7 總結203
第16章?文本閱讀理解
16.1 閱讀理解任務介紹205
16.2 模型實現205
16.3 總結208
第17章?為圖像添加文本描述
17.1 編碼器-解碼器架構210
17.2 Image Caption模型210
17.2.1 神經圖像字幕生成器210
17.2.2 加入註意力機制211
17.3 中文圖像字幕數據集212
17.3.1 數據結構212
17.3.2 構建詞典213
17.3.3 構建數據集215
17.4 構建Image Caption模型218
17.4.1 編碼器218
17.4.2 解碼器219
17.4.3 注意力層222
17.5 模型訓練和評估223
17.5.1 訓練編碼器和解碼器223
17.5.2 計算BLEU指標225
17.5.3 可視化結果225
17.6 總結226
第18章?聊天機器人
18.1 準備數據228
18.1.1 數據預處理228
18.1.2 為模型準備數據230
18.2 構建模型235
18.2.1 Encoder236
18.2.2 Decoder237
18.3 訓練準備239
18.4 評估模型243
18.5 訓練模型245
18.6 總結247
第19章?CycleGAN 模型
19.1 CycleGAN模型架構249
19.2 CycleGAN 模型的應用249
19.2.1 安裝依賴包249
19.2.2 準備數據集250
19.2.3 預訓練模型251
19.2.4 訓練模型252
19.2.5 測試模型253
19.2.6 結果可視化253
19.3 總結254
第20章?圖像超分辨率與ESPCN
20.1 理解圖像超分辨率和ESPCN算法256
20.1.1 圖像超分辨率背景介紹256
20.1.2 ESPCN算法原理257
20.2 製作數據集260
20.3 構建ESPCN模型263
20.4 訓練ESPCN模型264
20.5 測試ESPCN模型268
20.6 總結270
第21章?強化學習
21.1 任務準備272
21.1.1 任務說明272
21.1.2 需要的包272
21.2 記憶重放273
21.3 DQN算法274
21.3.1 Q-Learning算法274
21.3.2 Q-Net模型275
21.3.3 抓取輸入圖像
(獲得狀態表示)276
21.3.4 超參數設置和工具函數277
21.3.5 訓練模型279
21.4 總結282