這是書籍《深度學習框架PyTorch:入門與實踐(第2版)》的對應代碼,但是也可以作為一個獨立的PyTorch入門指南和教程。
全新升級
本書第2版基於第1版進行了全新升級,全書代碼基於PyTorch 1.8版本進行編寫,結合第一版廣大讀者的意見進行了全面更新,包含了基本使用、高級擴展以及實戰應用三大模塊。
內容
該書(教程/倉庫)的內容如圖所示: 
可以看出本教程可以分為三部分:
基本使用(第2~5章)講解PyTorch內容,這部份介紹了PyTorch中主要的的模塊,和深度學習中常用的一些工具。對於這部分內容,這裡利用Jupyter Notebook作為教學工具,讀者可以結合notebook修改運行,反复實驗。
- 第2章介紹PyTorch的安裝以及相關學習環境的配置。同時,本章以概要的方式介紹PyTorch的主要內容,幫助讀者初步了解PyTorch。
- 第3章介紹PyTorch中多維數組Tensor以及自動微分系統autograd的使用,舉例說明如何使用Tensor和autograd實現線性回歸,並對比它們的不同點。本章對Tensor的基本結構以及autograd的原理進行了分析,幫助讀者更加全面地了解PyTorch的底層模塊。
- 第4章介紹PyTorch中神經網絡模塊nn的基本用法,講解了神經網絡中的層、激活函數、損失函數以及優化器等,在本章的最後帶領讀者使用不到50行代碼實現經典的網絡結構ResNet。
- 第5章介紹PyTorch中的數據加載、預訓練模型、可視化工具以及GPU加速等工具,合理地使用這些工具可以提高用戶的編程效率。
高級擴展(第6~8章)講解PyTorch中的一些高級擴展,學習這部分內容可以幫助讀者編寫更加高效的程序。
- 第6章介紹PyTorch中的向量化思想,主要包括廣播法則、基本索引、高級索引以及愛因斯坦操作。在本章的最後帶領讀者使用向量化思想實現深度學習中的捲積操作、交並比、RoI Align以及反向Unique操作。
- 第7章介紹PyTorch中的分佈式操作。分佈式計算和並行計算可以加速網絡的訓練過程,本章詳細介紹了並行計算和分佈式計算的基本原理,同時介紹瞭如何使用torch.distributed以及Horovod進行PyTorch的分佈式訓練。
- 第8章介紹PyTorch中的CUDA擴展,帶領讀者使用CUDA實現Sigmoid函數。同時,本章對CUDA、NVIDIA-driver、cuDNN以及Python之間的關係進行了總結。
實戰應用(第9~13章)利用PyTorch實現了幾個酷炫有趣的應用,對於這部分的內容,本倉庫給出完整的實現代碼,並提供預訓練好的模型作為demo,供讀者測試。
- 第9章是承上啟下的一章,目標不是教會讀者新函數、新知識,而實結合Kaggle中的一個經典比賽,實現深度學習中最為簡單的圖像二分類問題。在實現的過程中,將帶領讀者復習前5章的知識,並幫助讀者合理地組織程序和代碼,使程序更加易讀且更好維護。同時,本章介紹瞭如何在PyTorch中調試。
- 第10章介紹生成對抗網絡的基本原理,帶領讀者從零開始實現一個動漫頭像生成器,能夠利用生成對抗網絡生成風格多變的動漫頭像。
- 第11章介紹自然語言處理的一些基本知識,詳細介紹了CharRNN以及Transformer的基本原理。本章帶領讀者使用Transformer實現自動寫詩,該程序可以模仿古人進行詩詞的續寫以及藏頭詩的生成。
- 第12章介紹風格遷移的基本原理,帶領讀者實現支持任意風格遷移的神經網絡。通過該網絡,讀者可以將任意圖片轉換為名畫的風格。
- 第13章介紹目標檢測的基本原理,帶領讀者實現單階段、無錨框、無非極大值抑制的目標檢測算法CenterNet。 CenterNet的設計思路可以遷移到三維圖像的目標檢測、人體姿態估計以及目標追踪等經典的計算機視覺問題中。
Notebook中的文字描述內容及部分Markdown內容屬於本書的初稿,可能存在有描述不通順之處,還請諒解,後續作者會逐漸校正。這部分內容與書籍保證了80%的一致性,但可能有部分語病語法問題,由於時間關係暫未完全校正,後續作者會逐漸更新。
是否需要買書
書不是必要的,這個倉庫包含書中60%以上的文字內容,90%以上的代碼,尤其是前幾章入門內容,幾乎是完全保留了書中的講解內容。讀者即使不買書也能正常使用本教程。
如果你覺得你更喜歡紙質版的閱讀體驗,並想留下一本印刷精美、完全彩印的書籍方便翻閱,不妨小破費一筆,支持一下作者近一年以來的工作~
代碼說明
代碼主要在python3+PyTorch1.6~1.8下測試得到最終結果,python2暫未測試,更新版本的PyTorch暫未測試。
如果有任何不當,或者有待改進的地方,歡迎開issue討論,或者提交pull request。
環境配置
安裝PyTorch,請從官網選擇指定的版本安裝即可,一鍵安裝。更多的安裝方式請參閱書中說明。
克隆倉庫
git clone https : // github . com / chenyuntc / PyTorch - book . git
^_^
有任何bug,解釋不清楚的地方或者是困惑,歡迎開issue
歡迎pull requests
Happy Coding!
