pytorch深度學習實戰(2022年人民郵電出版社出版的圖書)

pytorch深度學習實戰(2022年人民郵電出版社出版的圖書)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

《pytorch深度學習實戰》是一本2022年人民郵電出版社出版的圖書。本書是教你使用 PyTorch 創建神經網路和深度學習系統的實用指南。

基本介紹

  • 中文名:pytorch深度學習實戰
  • 作者:[美]伊萊·史蒂文斯,[意]盧卡·安蒂加,[德]托馬斯·菲曼
  • 出版時間:2022年2月
  • 出版社人民郵電出版社
  • 頁數:417 頁
  • ISBN:9787115577672
  • 定價:119.00 元
  • 裝幀平裝
  • 出品方:異步圖書
內容簡介,圖書目錄,作者簡介,

內容簡介

1.PyTorch核心開發者教你使用 PyTorch 創建神經網路和深度學習系統的實用指南。
2.詳細講解整個深度學習管道的關鍵實踐,包括 PyTorch張量API、用 Python 載入數據、監控訓練以及對結果進行可視化。
3. PyTorch核心知識+真實、完整的案例項目,快速提升讀者動手能力:
a.全面掌握PyTorch 相關的API 的使用方法以及系統掌握深度學習的理論和方法;
b.快速從零開始構建一個真實示例:腫瘤圖像分類器;
c.輕鬆學會使用PyTorch 實現各種神經網路模型來解決具體的深度學習問題;
d.章尾附有“練習題”,鞏固提升所學知識;更有配套的代碼檔案可下載並動手實現。
4. PyTorch 聯合創作者Soumith Chintala作序推薦!
5. 書中所有代碼都是基於Python 3.6及以上的版本編寫的,提供原始碼下載。
雖然很多深度學習工具都使用Python,但PyTorch 庫是真正具備Python 風格的。對於任何了解NumPy 和scikit-learn 等工具的人來說,上手PyTorch 輕而易舉。PyTorch 在不犧牲高級特性的情況下簡化了深度學習,它非常適合構建快速模型,並且可以平穩地從個人套用擴展到企業級套用。由於像蘋果、Facebook和摩根大通這樣的公司都使用PyTorch,所以當你掌握了PyTorth,就會擁有更多的職業選擇。
本書是教你使用 PyTorch 創建神經網路和深度學習系統的實用指南。它幫助讀者快速從零開始構建一個真實示例:腫瘤圖像分類器。在此過程中,它涵蓋了整個深度學習管道的關鍵實踐,包括 PyTorch張量 API、用 Python 載入數據、監控訓練以及將結果進行可視化展示。
本書主要內容:
(1)訓練深層神經網路;
(2)實現模組和損失函式;
(3)使用 PyTorch Hub 預先訓練的模型;
(4)探索在 Jupyter Notebooks 中編寫示例代碼。
本書適用於對深度學習感興趣的 Python 程式設計師。了解深度學習的基礎知識對閱讀本書有一定的幫助,但讀者無須具有使用 PyTorch 或其他深度學習框架的經驗。

圖書目錄

第 1部分 PyTorch核心
第 1章 深度學習和PyTorch庫簡介 3
1.1 深度學習革命 4
1.2 PyTorch深度學習 5
1.3 為什麼用PyTorch 6
1.4 PyTorch如何支持深度學習概述 8
1.5 硬體和軟體要求 10
1.6 練習題 12
1.7 本章小結 13
第 2章 預訓練網路 14
2.1 一個識別圖像主體的預訓練網路 15
2.1.1 獲取一個預先訓練好的網路用於圖像識別 16
2.1.2 AlexNet 17
2.1.3 ResNet 19
2.1.4 準備運行 19
2.1.5 運行模型 21
2.2 一個足以以假亂真的預訓練模型 23
2.2.1 GAN遊戲 24
2.2.2 CycleGAN 25
2.2.3 一個把馬變成斑馬的網路 26
2.3 一個描述場景的預訓練網路 29
2.4 Torch Hub 31
2.5 總結 32
2.6 練習題 32
2.7 本章小結 33
第3章 從張量開始 34
3.1 實際數據轉為浮點數 34
3.2 張量:多維數組 36
3.2.1 從Python列表到PyTorch張量 36
3.2.2 構造第 1個張量 37
3.2.3 張量的本質 37
3.3 索引張量 40
3.4 命名張量 40
3.5 張量的元素類型 43
3.5.1 使用dtype指定數字類型 43
3.5.2 適合任何場合的dtype 44
3.5.3 管理張量的dtype屬性 44
3.6 張量的API 45
3.7 張量的存儲視圖 46
3.7.1 索引存儲區 47
3.7.2 修改存儲值:就地操作 48
3.8 張量元數據:大小、偏移量和步長 48
3.8.1 另一個張量的存儲視圖 49
3.8.2 無複製轉置 51
3.8.3 高維轉置 52
3.8.4 連續張量 53
3.9 將張量存儲到GPU 55
3.10 NumPy互操作性 57
3.11 廣義張量也是張量 57
3.12 序列化張量 58
3.13 總結 60
3.14 練習題 60
3.15 本章小結 60
第4章 使用張量表征真實數據 61
4.1 處理圖像 62
4.1.1 添加顏色通道 62
4.1.2 載入圖像檔案 63
4.1.3 改變布局 63
4.1.4 正規化數據 64
4.2 三維圖像:體數據 65
4.3 表示表格數據 66
4.3.1 使用真實的數據集 67
4.3.2 載入葡萄酒數據張量 68
4.3.3 表示分數 70
4.3.4 獨熱編碼 70
4.3.5 何時分類 72
4.3.6 尋找閾值 73
4.4 處理時間序列 75
4.4.1 增加時間維度 76
4.4.2 按時間段調整數據 77
4.4.3 準備訓練 79
4.5 表示文本 81
4.5.1 將文本轉化為數字 81
4.5.2 獨熱編碼字元 82
4.5.3 獨熱編碼整個詞 83
4.5.4 文本嵌入 85
4.5.5 作為藍圖的文本嵌入 87
4.6 總結 88
4.7 練習題 88
4.8 本章小結 88
第5章 學習的機制 90
5.1 永恆的建模經驗 90
5.2 學習就是參數估計 92
5.2.1 一個熱點問題 93
5.2.2 收集一些數據 93
5.2.3 可視化數據 94
5.2.4 選擇線性模型首試 94
5.3 減少損失是我們想要的 95
5.4 沿著梯度下降 98
5.4.1 減小損失 99
5.4.2 進行分析 99
5.4.3 疊代以適應模型 101
5.4.4 歸一化輸入 104
5.4.5 再次可視化數據 106
5.5 PyTorch自動求導:反向傳播的一切 107
5.5.1 自動計算梯度 107
5.5.2 最佳化器 111
5.5.3 訓練、驗證和過擬合 115
5.5.4 自動求導更新及關閉 120
5.6 總結 121
5.7 練習題 122
5.8 本章小結 122
第6章 使用神經網路擬合數據 123
6.1 人工神經網路 124
6.1.1 組成一個多層網路 125
6.1.2 理解誤差函式 125
6.1.3 我們需要的只是激活函式 126
6.1.4 更多激活函式 128
6.1.5 選擇最佳激活函式 128
6.1.6 學習對於神經網路意味著什麼 129
6.2 PyTorch nn模組 131
6.2.1 使用__call__()而不是forward() 132
6.2.2 回到線性模型 133
6.3 最終完成一個神經網路 137
6.3.1 替換線性模型 137
6.3.2 檢查參數 138
6.3.3 與線性模型對比 141
6.4 總結 142
6.5 練習題 142
6.6 本章小結 142
第7章 區分鳥和飛機:從圖像學習 143
7.1 微小圖像數據集 143
7.1.1 下載CIFAR-10 144
7.1.2 Dataset類 145
7.1.3 Dataset變換 146
7.1.4 數據歸一化 149
7.2 區分鳥和飛機 150
7.2.1 構建數據集 151
7.2.2 一個全連線模型 152
7.2.3 分類器的輸出 153
7.2.4 用機率表示輸出 154
7.2.5 分類的損失 157
7.2.6 訓練分類器 159
7.2.7 全連線網路的局限 165
7.3 總結 167
7.4 練習題 167
7.5 本章小結 168
第8章 使用卷積進行泛化 169
8.1 卷積介紹 169
8.2 卷積實戰 172
8.2.1 填充邊界 173
8.2.2 用卷積檢測特徵 175
8.2.3 使用深度和池化技術進一步研究 177
8.2.4 為我們的網路整合一切 179
8.3 子類化nn.Module 181
8.3.1 將我們的網路作為一個nn.Module 182
8.3.2 PyTorch如何跟蹤參數和子模組 183
8.3.3 函式式API 184
8.4 訓練我們的convnet 185
8.4.1 測量精度 187
8.4.2 保存並載入我們的模型 188
8.4.3 在GPU上訓練 188
8.5 模型設計 190
8.5.1 增加記憶體容量:寬度 191
8.5.2 幫助我們的模型收斂和泛化:正則化 192
8.5.3 深入學習更複雜的結構:深度 195
8.5.4 本節設計的比較 200
8.5.5 已經過時了 201
8.6 總結 201
8.7 練習題 201
8.8 本章小結 202
第 2部分 從現實世界的圖像中學習:肺癌的早期檢測
第9章 使用PyTorch來檢測癌症 205
9.1 用例簡介 205
9.2 為一個大型項目做準備 206
9.3 到底什麼是CT掃描 207
9.4 項目:肺癌的端到端檢測儀 210
9.4.1 為什麼我們不把數據扔給神經網路直到它起作用呢 213
9.4.2 什麼是結節 216
9.4.3 我們的數據來源:LUNA大挑戰賽 217
9.4.4 下載LUNA數據集 218
9.5 總結 219
9.6 本章小結 219
第 10章 將數據源組合成統一的數據集 220
10.1 原始CT數據檔案 222
10.2 解析LUNA的標註 數據 222
10.2.1 訓練集和驗證集 224
10.2.2 統一標註和候選 數據 225
10.3 載入單個CT掃描 227
10.4 使用病人坐標系定位結節 230
10.4.1 病人坐標系 230
10.4.2 CT掃描形狀和體素大小 232
10.4.3 毫米和體素地址之間的轉換 233
10.4.4 從CT掃描中取出一個結節 234
10.5 一個簡單的數據集實現 235
10.5.1 使用getCtRawCandidate()函式快取候選數組 238
10.5.2 在LunaDataset.__init__()中構造我們的數據集 238
10.5.3 分隔訓練集和驗證集 239
10.5.4 呈現數據 240
10.6 總結 241
10.7 練習題 241
10.8 本章小結 242
第 11章 訓練分類模型以檢測可疑腫瘤 243
11.1 一個基本的模型和訓練循環 243
11.2 應用程式的主入口點 246
11.3 預訓練和初始化 247
11.3.1 初始化模型和最佳化器 247
11.3.2 數據載入器的維護和供給 249
11.4 我們的首次神經網路設計 251
11.4.1 核心卷積 251
11.4.2 完整模型 254
11.5 訓練和驗證模型 257
11.5.1 computeBatchLoss()函式 258
11.5.2 類似的驗證循環 260
11.6 輸出性能指標 261
11.7 運行訓練腳本 265
11.7.1 訓練所需的數據 266
11.7.2 插曲:enumerateWithEstimate()函式 266
11.8 評估模型:得到99.7%的正確率是否意味著我們完成了任務 268
11.9 用TensorBoard繪製訓練指標 269
11.9.1 運行TensorBoard 269
11.9.2 增加TensorBoard對指標記錄函式的支持 272
11.10 為什麼模型不學習檢測結節 274
11.11 總結 275
11.12 練習題 275
11.13 本章小結 275
第 12章 通過指標和數據增強來提升訓練 277
12.1 高級改進計畫 278
12.2 好狗與壞狗:假陽性與假陰性 279
12.3 用圖表表示陽性與陰性 280
12.3.1 召回率是Roxie的強項 282
12.3.2 精度是Preston的強項 283
12.3.3 在logMetrics()中實現精度和召回率 284
12.3.4 我們的終極性能指標:F1分數 285
12.3.5 我們的模型在新指標下表現如何 289
12.4 理想的數據集是什麼樣的 290
12.4.1 使數據看起來更理想化 292
12.4.2 使用平衡的LunaDataset與之前的數據集運行情況對比 296
12.4.3 認識過擬合 298
12.5 重新審視過擬合的問題 300
12.6 通過數據增強防止過擬合 300
12.6.1 具體的數據增強技術 301
12.6.2 看看數據增強帶來的改進 306
12.7 總結 308
12.8 練習題 308
12.9 本章小結 309
第 13章 利用分割法尋找可疑結節 310
13.1 向我們的項目添加第 2個模型 310
13.2 各種類型的分割 312
13.3 語義分割:逐像素分類 313
13.4 更新分割模型 317
13.5 更新數據集以進行分割 319
13.5.1 U-Net有非常具體的對輸入大小的要求 320
13.5.2 U-Net對三維和二維數據的權衡 320
13.5.3 構建真實、有效的數據集 321
13.5.4 實現Luna2dSegmentationDataset 327
13.5.5 構建訓練和驗證數據 331
13.5.6 實現TrainingLuna2dSegmentationDataset 332
13.5.7 在GPU上增強數據 333
13.6 更新用於分割的訓練腳本 335
13.6.1 初始化分割和增強模型 336
13.6.2 使用Adam最佳化器 336
13.6.3 骰子損失 337
13.6.4 將圖像導入TensorBoard 340
13.6.5 更新指標日誌 343
13.6.6 保存模型 344
13.7 結果 345
13.8 總結 348
13.9 練習題 348
13.10 本章小結 349
第 14章 端到端的結節分析及下一步的方向 350
14.1 接近終點線 350
14.2 驗證集的獨立性 352
14.3 連線CT分割和候選結節分類 353
14.3.1 分割 354
14.3.2 將體素分組為候選結節 355
14.3.3 我們發現結節了嗎?分類以減少假陽性 357
14.4 定量驗證 360
14.5 預測惡性腫瘤 361
14.5.1 獲取惡性腫瘤信息 361
14.5.2 曲線基線下的區域:按直徑分類 362
14.5.3 重用預先存在的權重:微調 365
14.5.4 TensorBoard中的輸出 370
14.6 在診斷時所見的內容 374
14.7 接下來呢?其他靈感和數據的來源 376
14.7.1 防止過擬合:更好的正則化 377
14.7.2 精細化訓練數據 379
14.7.3 競賽結果及研究論文 380
14.8 總結 381
14.9 練習題 382
14.10 本章小結 383
第3部分 部署
第 15章 部署到生產環境 387
15.1 PyTorch模型的服務 388
15.1.1 支持Flask服務的模型 388
15.1.2 我們想從部署中得到的東西 390
15.1.3 批處理請求 391
15.2 導出模型 395
15.2.1 PyTorch與ONNX的互操作性 396
15.2.2 PyTorch自己的導出:跟蹤 397
15.2.3 具有跟蹤模型的伺服器 398
15.3 與PyTorch JIT編譯器互動 398
15.3.1 超越經典Python/PyTorch的期望是什麼 399
15.3.2 PyTorch作為接口和後端的雙重特性 400
15.3.3 TorchScript 400
15.3.4 為可追溯的差異編寫腳本 404
15.4 LibTorch:C++中的PyTorch 405
15.4.1 從C++中運行JITed模型 405
15.4.2 從C++ API開始 408
15.5 部署到移動設備 411
15.6 新興技術:PyTorch
模型的企業服務 416
15.7 總結 416
15.8 練習題 416
15.9 本章小結 416

作者簡介

伊萊.史蒂文斯(Eli Stevens)職業生涯的大部分時間都在美國矽谷的初創公司工作,從軟體工程師(網路設備製造業)到首席技術官(開發腫瘤放療軟體)。在本書出版時,他正在汽車自動駕駛行業從事機器學習相關工作。
盧卡.安蒂加(Luca Antiga)於21 世紀初擔任生物醫學工程研究員。2010 年到2020 年間,他是一家人工智慧工程公司的聯合創始人和首席技術官。他參與了多個開源項目,包括PyTorch 的核心模組。最近,他作為聯合創始人創建了一家總部位於美國的初創公司,專注於數據定義軟體的基礎設施。
托馬斯.菲曼(Thomas Viehmann)是一名德國慕尼黑的機器學習和PyTorch 的專業培訓師和顧問,也是PyTorch 核心開發人員。擁有數學博士學位的他不畏懼理論,擅長將理論套用於實際的計算挑戰。
譯者
牟大恩,武漢大學碩士研究生畢業,曾先後在網易杭州研究院、優酷土豆集團、海通證券總部負責技術研發及系統架構設計工作,目前任職於東方證券資產管理有限公司。他有多年的Java
開發及系統設計經驗,專注於網際網路金融及大數據套用相關領域,熱愛技術,喜歡鑽研前沿技術,是機器學習及深度學習的深度愛好者。近年來著有《Kafka 入門與實踐》,譯有《Kafka Streams實戰》,已提交技術發明專利申請兩項。

相關詞條

熱門詞條

聯絡我們