PyTorch版《動手學深度學習》開源了,最美DL書遇上最贊DL框架

  • 2019 年 10 月 4 日
  • 筆記

機器之心報道

項目作者:ShusenTang

參與:思

想要入門最前沿的深度學習,想要玩最常見的深度學習框架?那就用 PyTorch 版的《動手學深度學習》吧,零基礎也能入門 DL。

李沐等人的開源中文書《動手學深度學習》現在有 PyTorch 版實現了。不論是原書中的示例代碼,還是實戰項目,原來的 MXNet 都可以無縫轉化到 PyTorch 代碼。項目作者在保持原書內容基本不變的情況下,將 MXNet 代碼都轉換為了 PyTorch,想要學習 DL 和 PyTorch 的小夥伴們可以試試啊。

  • 項目地址:https://github.com/ShusenTang/Dive-into-DL-PyTorch

近年來,不論是計算機專業的學生,還是已在科技互聯網行業從業多年的技術人員和其他從業者,人們對深度學習的興趣從未如此高漲。但是,由於語言等因素,中文版本的優秀深度學習教材也是鳳毛麟角。

之前,亞馬遜首席科學家李沐等人曾以電子版的形式在 GitHub 上開源了一本深度學習中文書籍——《動手學深度學習》,這是一本深度學習的入門教程類書籍。其英文版被 UC 伯克利「深度學習導論(STAT 157)」課程採用,2019 年李沐等在教授深度學習課程時也使用了這本教程。

  • 中文版開源地址:https://github.com/d2l-ai/d2l-zh

目前,該項目在 GitHub 上已獲得超過 1.1 萬星,並且中文版電子書還發佈了紙質版書籍。不過雖然書籍非常優秀,但還是有一些讀者不太習慣用 Gluon 來寫代碼,畢竟開源項目大部分都是 TF 或 PyTorch 寫的。現在好了,我們可以直接結合書籍內容和 PyTorch 框架,更深入地理解 DL。

項目怎麼樣

項目作者表示,該倉庫主要包含 code 和 docs 兩個文件夾。其中 code 文件夾就是每章相關 jupyter notebook 代碼(基於 PyTorch);docs 文件夾就是 markdown 格式的《動手學深度學習》書中的相關內容,它也是基於 PyTorch 的。

由於原書內容使用的是 MXNet 框架,所以 docs 內容可能與原書略有不同,但是整體內容是一樣的。如下所示為 docs 目錄下的文檔,它一共包含十章,大部分內容已經非常完整了,即 1-8 章和第 10 章,只有第 9 章計算機視覺還在繼續補全中。

其實新項目的內容結構與組織方式和原書是一樣的,上面展示的 docs 目錄主要可以分為三部分:基礎知識(1-3 章)、現代深度學習技術(4-6 章)、計算性能與應用(7-10)。如下所示為全書不同章節的主題與依賴關係,箭頭表示上一章有助於理解下一章。

除了內容,另一大部分就是實戰代碼了,隨書代碼基本都轉化為了 PyTorch,它如同原書一樣也是用 Jupyter Notebook 寫的,這樣更好地展示代碼與文字解釋。因為 GitHub 加載 Jupyter Notebook 挺慢的,所以最好還是下到本地查閱。

最後,《動手學深度學習》與 PyTorch 也是非常好的搭檔,也就是說我們不需要任何機器學習或深度學習背景知識,只需要了解基本數學與 Python 編程就可以了。

從 MXNet 到 PyTorch

這樣看起來可能不太直觀,我們可以通過兩個案例看看原版《動手學深度學習》隨書代碼和 PyTorch 版之間的區別。如果我們抽取使用循環神經網絡構建語言模型的分佈代碼,就能看看原版 Gluon 和新版 PyTorch 之間的區別。

如下是原書採用 RNN 建模語言模型的部分代碼(原書 6.5 章),我們主要抽取了模型定義部分:

如上可以改寫為對應的 PyTorch 代碼,它們的風格雖然都非常簡潔,但還是有一些不同的。

Exit mobile version