3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

如果你在社群提問初學者深度學習選擇什麼框架,得到的回答大多是讓你用PyTorch,而不是似乎應用更廣的TensorFlow。並且在相關論文中,越來越多的人選擇PyTorch,就是說在研究領域PyTorch也更受歡迎。

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

實線是PyTorch,虛線是TensorFlow

PyTorch 和TensorFlow 無疑是當下深度學習框架中兩個霸主,但為什麼對初學者來說PyTorch 會更合適呢?

三大理由選擇PyTorch

因為學習和生產使用的目的是不一樣的,要求也不一樣,而PyTorch作為一個對初學者與研究友好的深度學習框架,有以下三個優先選擇的理由。

專門的Python機器學習庫

2016年10月,Facebook的AI團隊(如今叫Meta AI)開源了自己的機器學習框架——PyTorch 。選擇Python主要是因為

Python程式碼的簡潔與高可讀性

,這讓開發者能夠專注於解決機器學習中的問題,而不是浪費精力在因為選擇程式語言而帶來的其他問題上。

另外一個重要原因是Python有著非常豐富的庫可供選擇,大大

節省了開發成本

,比如高效能計算常用到的NumPy、用來做資料分析的Pandas等。

並且Python的易用性還吸引了更多的人使用,然後他們又開發更多的機器學習相關庫與軟體,形成一個良性迴圈:Python讓機器學習變得更簡單好用,機器學習又讓Python變得更流行。

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

各程式語言的發展趨勢圖,藍色代表Python

Python在近幾年以騰飛之勢發展,一部分原因要歸功於人工智慧的發展。

Python讓PyTorch 更簡單

正是因為Python的易用性、可移植性、擁有豐富的庫等特性,使用PyTorch可以更快速地構建機器學習模型。

視覺化一直是深度學習中重要的一環,不管是展示結果還是除錯引數,視覺化操作的確是效果更好。PyTorch有專門的視覺化神器——visdom,這是一款專門為PyTorch開發的視覺化工具,可以在絕大部分資料視覺化任務中發揮作用。

豐富的工具讓PyTorch變得簡單好用。

同樣的,Python能夠輕易入門的優勢也在PyTorch中體現了出來。相對其他深度學習框架,

PyTorch的學習門檻更低、成本更少

。這主要歸功於Python那簡單直觀的語法,即使從未使用過PyTorch,也能很快從那些簡單的語法中看出程式碼的大概意思,從而加快學習速度。

還有

專業活躍的社群與完善的文件

支援,讓學習使用PyTorch也變得更輕鬆。

Facebook出品,開源透明

作為Facebook開發的開源產品,有許多深度學習的軟體是建立在PyTorch的基礎之上的。比如特斯拉的Tesla Autopilot、優步的Pyro、Hugging Face的 Transformers、PyTorch Lightning和Catalyst等。

使用開源軟體做學習與研究是非常明智的選擇——因為免費啊!並且在遇到問題的時候可以快速從網上得到解決方案,活躍的社群與開發者總能很快地給予回覆,這也是PyTorch在開源方面做得更好帶來的優勢。

綜合看下來,好像PyTorch的確非常簡單,是入門深度學習的一個不錯的選擇。那麼它有多簡單呢?

簡單到只用一本書就能完全搞定!從深度學習框架零經驗到建立神經網路和深度學習系統,只要《PyTorch深度學習實戰》一本足矣。

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

PyTorch權威之作,核心開發人員編寫

一書搞定PyTorch

關於一門技術或者工具,是誰對它更瞭解?能把它講得更清楚?當然是它的開發者!

PyTorch核心開發者編寫

這本書的作者有3個,分別是

伊萊·史蒂文斯

盧卡·安蒂加

托馬斯·菲曼

,3個人都是80後。他們都在很小的時候就接觸到了家用計算機,並且深深地迷戀上那些神奇的機器,很快就學會了程式設計並瘋狂地研究演算法。和當時的年輕人一樣,他們看到了計算機給未來帶來的無限可能,並且經常幻想著計算機能夠讓自己做到更多的事情。

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

伊萊·史蒂文斯

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

托馬斯·菲曼

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

盧卡·安蒂加

伊萊·史蒂文斯、盧卡·安蒂加開始的工作都和醫學影象分析有關,而托馬斯·菲曼在大學的專業是神經網路和模式識別,後來還拿到資料建模的博士學位。三個人的工作都和人工智慧聯絡緊密,在本世紀初的時候,深度學習開始出現在計算機視覺領域,並開始在醫學影象分析任務中發揮作用。

這立馬引起了三人的注意,在花了不少時間去認識和學習深度學習後,他們意識使用這種新的技術可以解決更復雜的問題。這讓他們大受鼓舞,關於計算機的能做什麼的問題一下子變得清晰無比:

計算機的功能不再限制於程式設計師的大腦,而是被資料、神經網路結構和訓練的過程所決定

當時盧卡·安蒂加在實踐過程中選擇了PyTorch的前身Torch,並很快愛上了這個

靈活、輕便、執行飛快

的框架。伊萊·史蒂文斯儘管大學的時候就對工智慧非常感興趣,但早期的工作方向是醫療裝置和檢測軟體,與深度學習稍有偏差。這讓他很苦惱,因為當時的深度學習框架作為業餘使用的話實在是比較費勁。

很早的時候三人就加入了PyTorch社群,開始為之貢獻自己的一份力。盧卡·安蒂加和托馬斯·菲曼因為很早就關注PyTorch,並且因為職業原因使用得更多,在為PyTorch貢獻了大量程式碼、修復了很多錯誤、新增了不少特性之後,他倆

率先成為了PyTorch的核心開發者

。伊萊·史蒂文斯作為社群成員,在錯誤文件修復、更新文件和實現新特性工作上做了許多貢獻。

三個人對於PyTorch的熱情不減,組織多次PyTorch研討會之後,他們覺得應該寫一本書了——

寫一本能夠吸引PyTorch初學者的書

專為零經驗初學者而寫的PyTorch教程

最開始大家的想法極其宏大:這本書應該教授基礎的知識,並且能夠完成一個端到端的專案,當然還要演示PyTorch最新和最好的模型。不過經過討論研究之後他們發現,把這些內容全部塞到一本書裡面完全是不可能的事,所以最後又回到了最初的目標:

讓一個完全的初學者瞭解PyTorch的關鍵概念,並最終完成一個完整的專案

寫這本書的時候他們想到了最初的自己:那時候PyTorch並沒有權威專業的教程,都是自己硬著頭皮去學的。為了讓像以前的自己那樣對PyTorch感興趣,又苦於沒有一本合適教程圖書的讀者能夠快速學會並使用PyTorch,他們開始寫這本書。

程式碼豐富,示例有趣

很多初學者被那些技術大部頭書勸退,大部分原因是那些書實在是太無聊了,整一個枯燥地展示高深的原理和概念,看一兩眼就要睡過去。而這本書作者三人都是從最初什麼都不懂走過來的,知道真正的初學者想要什麼:簡單易懂,講得有那麼一點趣味性是最好了。

其實PyTorch本身是相對簡單的,只要有一點Python基礎,就能看明白書中基於Python 3。6及以上的豐富程式碼例項。並且即使沒有深度學習的經驗,也能夠使用這本書——重點是讓讀者學會熟練使用PyTorch庫。

而且,為了讓分析問題的過程更形象直觀,書中使用了大量的頗具趣味性的插圖示例,讓這個學習過程變得更有意思。

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學

一個簡單的推理過程

循序漸進,逐步探索

正是為了照顧初學者,他們沒有把這本書寫成一部巨厚無比的PyTorch參考書,而是寫成了一本

概念性的指南

。透過對PyTorch關鍵特性的直觀描述,深入細節剖析背後的奧秘,引導初學者進行深一步的探索。

就像打遊戲中的副本,沒有人會一上來就直接幹boss吧?都是先把小怪清掉,積累點經驗和裝備,然後再從易到難依次解決那些boss。學習新的知識和技能同樣是這樣的,先把基礎的學好,然後循序漸進,逐步推進,直到完成學習目標。

伊萊·史蒂文斯、盧卡·安蒂加和托馬斯·菲曼3個人根據自己擅長的內容,分工合作:盧卡·安蒂加負責第一部分的基礎內容;伊萊·史蒂文斯是腫瘤放療軟體的專家,第二部分的實戰專案就由他負責了——完成一個全面的肺癌自動檢測解決方案的專案;托馬斯·菲曼作為PyTorch專業培訓師和顧問,擅長將理論應用於實戰,所以第三部分關於PyTorch部署的內容就由他來負責了。

書中的內容整體呈現

由易到難、由淺入深

的形式,從前面的基礎知識,到中間的專案實戰,再到最後的部署,一站式解決從零到釋出的整個過程。

作為一個相對簡單的選擇,入門學習深度學習框架使用PyTorch的確是更合適。而《PyTorch深度學習實戰》一書避免了大量講述無關原理和效能,專注於讓初學者快速學會使用PyTorch,透過通俗的文字與趣味十足的圖示引導著讀者一步步探索PyTorch。

就像一個大佬帶新人速通初級本,一路上指導新人這種型別副本的規則與關鍵技巧。當新人一步步跟在大佬身邊並嘗試對boss放技能,最終幹掉所有boss後,也摸清了這類副本的路數,能夠驕傲地跟大佬說:感謝大佬,我會了!原來這個副本並沒有那麼難。

滑動檢視更多圖書資訊

3個滿級大佬帶1個新人勇闖新手村,PyTorch 該這麼學