核心開發者親授!PyTorch 深度學習攻略 (Deep Learning with Pytorch)
內容描述
內容介紹:
【PyTorch官方唯一推薦教材!】
[專家推薦]
●Soumith Chintala,PyTorch 共同開發者 & Facebook AI Research 研究員:
『這本書出版後,我們終於有了關於 PyTorch 的權威著作,它具體地說明了基礎的知識和概念。』
●Mathieu Zhang,NVIDIA 深度學習技術經理:
『將深度學習切割成易於讀者消化的區塊,再以程式範例作為輔助。』
●Philippe Van Bergen,PÇ Consulting 雲端架構師:
『具及時性、實務性及透徹性的一本書。你應該把它放在你的電腦旁,而不只是把它放在書架上。』
●Orlando Alejo Méndez Morales,Experian 軟體分析師:
『這本書提供了非常實用的深度學習概述,適合做為教學資源。』
深度學習是近年來非常夯的一個領域,發展的速度也十分的驚人。曾經,深度學習的函式庫五花八門,各自都具備了一定的重要性。如今,使用者開始往兩大函式庫,PyTorch及Tensorflow靠攏,進而鞏固了它們的地位。在2018年以前,Tensorflow在國際學術頂尖會議中的論文引用率都遠超PyTorch。自2019年起,PyTorch就奮起直追,越來越受到學者們的喜愛。在ICLR 2020和CVPR 2020會議中,使用PyTorch的論文數已超越Tensorflow。由此可見,掌握PyTorch,是勢在必行的!
PyTorch最為人稱道就是語法和Python相近,一樣簡潔好學,與Numpy、Pandas函式庫的相容性也很好,並支援動態運算圖(dynamic computational graph),有助於模型的優化,對記憶體的使用也非常有效率。本書作者為PyTorch核心開發者,深知PyTorch的強大之處,並擁有豐富的深度學習經驗,將帶你從無到有,利用PyTorch建構出深度學習模型,並用其來解決現實問題的能力。
與其他深度學習框架書相比,本書的最大特色為:利用數個章節來實作肺癌偵測專案。在實作該專案的過程中,你可以實際體會到如何充分把所學應用出來,並針對過程中所遇到的問題來找出解方。更重要的是,作者的寶貴經驗會讓你少走許多彎路,快速培養實戰能力!
閱讀完本書後,你將了解:
★深度學習的基本資料結構:張量(tensor)
★如何實作模組及損失函數
★如何從PyTorch Hub中載入預先訓練的模型
★在有限的資料下,訓練模型的方法
★分析測試結果,並找出現有模型中的問題
★透過擴增資料等方法,提高模型的表現
如果你對深度學習非常有熱忱,並且已經具備一定的Python能力,願意跟著書中內容動手嘗試,那你就是本書最適合的讀者!
本書特色:
◎作者為PyTorch核心開發者,能以更全面的視角來進行教學
◎實作內容豐富,花費大量篇幅處理肺癌偵測專案
◎時刻提點實作專案時可能遇到的陷阱,讓讀者少走彎路
◎各章節的內容皆搭配程式範例,讀者可實際演練來加深印象
◎本書由施威銘研究室監修,書中針對原書進行大量補充,並適當添加註解,幫助讀者更好地理解內容
目錄大綱
★第一篇 PyTorch的核心
☆第1章:深度學習與PyTorch函式庫
1-1 深度學習的演變
1-2 將PyTorch應用到深度學習中
1-3 為什麼要使用PyTorch?
1-4 PyTorch如何協助深度學習專案的開發
1-5 軟硬體需求
☆第2章:預先訓練的模型
2-1 利用預先訓練的模型來辨識圖像中的物體
2-2 利用預先訓練的模型來生成『假』圖片
2-3 能描述場景的神經網路模型
2-4 Torch Hub
2-5 結論
☆第3章:介紹張量
3-1 浮點數的世界
3-2 張量:多維陣列
3-3 利用索引值操作張量
3-4 為張量命名
3-5 張量的元素型別
3-6 其他常用的張量功能
3-7 張量的儲存原理
3-8 大小 、偏移及步長
3-9 把張量移到GPU上
3-10 與NumPy的互通性
3-11 通用的張量(可適用於各種硬體)
3-12 將張量序列化(長期儲存)
3-13 結論
☆第4章:用張量表示現實中的資料
4-1 圖片資料
4-2 3D立體圖片資料
4-3 表格資料
4-4 時間序列資料
4-5 表示文字資料
4-6 結論
☆第5章:學習的機制
5-1 學習的流程
5-2 學習就是在估算參數
5-3 以降低損失為目標
5-4 梯度下降演算法
5-5 用PyTorch的autograd進行反向傳播
5-6 結論
☆第6章:使用神經網路來擬合資料
6-1 神經元
6-2 PyTorch的nn模組
6-3 進入正題:神經網路
6-4 結論
☆第7章:從圖片中學習
7-1 由小型圖片組成的資料集
7-2 區分鳥和飛機
7-3 結論
☆第8章:卷積神經網路
8-1 關於卷積
8-2 卷積的實際應用
8-3 建立nn.Module的子類別
8-4 訓練卷積網路
8-5 模型設計的進階技巧
8-6 結論
★第2篇 從現實世界中的圖片學習:肺部腫瘤偵測專案
☆第9章:利用PyTorch對抗癌症
9-1 應用實例的介紹
9-2 為大型專案做準備
9-3 CT掃描到底是什麼?
9-4 專案概述:肺部腫瘤偵測器
9-5 結論
☆第10章:匯入原始資料並整合為資料集
10-1 原始CT資料
10-2 分析LUNA的標註資料
10-3 匯入CT掃描資料
10-4 定位結節
10-5 簡單的資料集實作
10-6 結論
☆第11章:訓練模型分辨結節的真假
11-1 最基礎的模型與訓練迴圈
11-2 程式的進入點
11-3 訓練前的設定與初始化
11-4 我們的首個神經網路
11-5 模型的訓練與驗證
11-6 輸出表現評估資料
11-7 執行訓練程式
11-8 評估模型表現:得到99-7%的分類準確率就代表結束了嗎?
11-9 使用TensorBoard畫出訓練評估指標
11-10 為什麼模型沒有學會偵測結節?
11-11 結論
☆第12章:利用評估指標和資料擴增來改善訓練成效
12-1 模型改善的大方向
12-2 偽陽性與偽陰性
12-3 陽性與陰性的視覺化描述
12-4 理想的資料集長什麼樣子?
12-5 過度配適
12-6 利用資料擴增來防止過度配適
12-7 結論
☆第13章:利用『分割』找出疑似結節的組織
13-1 在專案中加入第二個模型
13-2 不同類型的資料分割
13-3 語義分割:像素層級的分類
13-4 更改模型以執行資料分割
13-5 更改資料集以執行資料分割
13-6 更改訓練程式以執行資料分割
13-7 最終結果
13-8 結論
☆第14章:端到端結節偵測(與未來方向)
14-1 迎向終點線
14-2 保持驗證資料集的獨立性
14-3 連接『分割模型』與『分類模型』
14-4 量化驗證
14-5 預測惡性結節
14-6 利用模型進行診斷
14-7 補充資源與資料
14-8 結論
作者介紹
Eli Stevens主要在矽谷的新創公司任職。其所扮演的角色相當多元,從軟體工程師(負責企業網路設備)到CTO(開發與放射腫瘤學相關的軟體)都有。在研究發表方面,Eli的文章主要涉及機器學習在自動駕駛工業的應用。
Luca Antiga在2000年代初期擔任生物醫學工程的研究員;而在過去十年,他也是一家AI工程公司的共同創辦人兼CTO。許多開源專案都有Luca的貢獻,其中就包括了PyTorch的核心部分。
Thomas Viehmann在德國慕尼黑擔任PyTorch機器學習技術的訓練員和顧問,同時也是PyTorch的核心開發者之一。