第一章 PyTorch 簡介與安裝
本章,將帶領讀者踏入PyTorch的環境配置之路,從Python虛擬環境的搭建到IDE的安裝,CUDA與cuDNN的配置,再到PyTorch的精細安裝,直至Jupyter Notebook的實踐,每一步均圖文並茂。
篇章概覽:
- PyTorch初認識:開篇,將揭示PyTorch的起源,介紹它如何加速從科研原型至部署的路徑,以及背後的歷史與哲學。
- Anaconda環境配置:深入Python虛擬環境的搭建,Anaconda的語法,如何借助它輕鬆管理Python環境與包,創建隔離的環境,為PyTorch鋪路。
- IDE選擇:PyCharm & VS Code:對比兩大IDE,PyCharm的社區版與專業版,VS Code。
- CUDA與cuDNN:介紹CUDA與cuDNN的安裝,如何讓GPU驅動PyTorch加速,選對的CUDA版本匹配,是關鍵的一節。
- PyTorch系列包安裝:從torch、torchvision、torchaudio至torchtext,將詳細介紹安裝流程與版本匹配。
- Jupyter Notebook實踐:介紹Jupyter Notebook的概念及安裝,並且配置Kernel。
1.1 PyTorch 初認識
一句話認識PyTorch
“An open source machine learning framework that accelerates the path from research prototyping to production deployment.” ——選自 https://pytorch.org/
PyTorch 是一個開源機器學習框架,説明使用者加速從演算法模型研究到產品部署的過程。
PyTorch歷史
FAIR( Facebook AI Research,Facebook人工智慧研究院 )於2017年初發佈PyTorch,PyTorch 的命名由 Py(代表 Python)和 Torch 組成。Py就是python語言,Torch是一款早期的深度學習框架,所以PyTorch是在Torch基礎上用python語言重新打造的一款深度學習框架。
那麼什麼是Torch呢?Torch是紐約大學在2002年開發的深度學習框架。Torch雖然很好用,但是它採用了一門較為小眾的語言——Lua語言作為介面。這明顯地增高了Torch的使用門檻,想要使用Torch必須學習一門新的程式設計語言,這讓大家都望而卻步。
好在Torch的幕後團隊也意識到這一點,於是團隊採用python語言作為介面對Torch進行了重構,於是就有了PyTorch。
PyTorch代碼最早公開版本可追溯至2016年8月24日的v0.1.1(https://github.com/pytorch/pytorch/tags?after=v0.1.4)
隨後
•2017年1月正式發佈PyTorch
•2018年4月更新0.4.0版,支援Windows系統
•2018年11月更新1.0穩定版,已成為GitHub上第二快的開源項目
......
對PyTorch版本的更新感興趣的讀者,可以關注PyTorch-Tags,這裡是最權威版本更新資訊來源,要比官方文檔還要快。
PyTorch必備網站
要熟悉PyTorch,不得不熟悉PyTorch的一些官方網站,以及這些網站的使用。下面列舉幾個實用的PyTorch網站。
官網包含權威的PyTorch介紹、PyTorch官方文檔、生態資源等資訊。例如在Get Started中,可以獲取權威的安裝資訊。例如,特定版本下,windows系統,所支援的CUDA版本是多少,這點非常關鍵,往往GPU用不起來,就是CUDA版本不匹配。
除了最新穩定版,還可以下載歷史版本的whl檔,進行離線安裝(網速不好的讀者,建議手動下載whl,然後進行安裝)。歷史版本whl的在哪那裡下載呢? 是需要挖掘的,網址在上圖的windows系統、Pip安裝、Python、CUDA條件下才會出現,它是:https://download.pytorch.org/whl,點擊torch,就可以發現所有歷史版本都在這裡可以找到,並且命名都有良好的規範,這裡不過多介紹,在安裝部分再詳細講解。
除了Get Started欄目,其它欄目也是很好的學習資料。
- Ecosystem:PyTorch生態系統資源庫,裡面收錄生態系統內的資源,也歡迎大家加入並貢獻資源,裡邊有CV資料增強開源庫——albumentations、FB的目標檢測和分割演算法庫——detectron2、優秀的部署平臺——onnxruntime等等
- Mobile:移動端PyTorch實現方案及資源。
- Blog:PyTorch相關新聞。
- Tutorials:案例教程,這裡面都是個人提供的、針對某一個應用的demo級的教程。包含如下方向,對於新手來說,可以看一下,瞭解個大概,但裡面的代碼多是demo,無法開箱即用於項目應用,這也是本書第二部分將會彌補的地方,敬請期待。
- Docs:PyTorch API官方文檔, 這也是我一直首推的學習資料,PyTorch的文檔非常友好,可以查閱不同版本,各個API都有詳細介紹,大多都有代碼案例,PyTorch的基礎部分主要從這裡開始進行講解。Docs下還會分PyTorch、torchvision、torchaudio、torchtext等,大家需要針對性的檢索。
- Resource:這裡包含各種資源,如社區、新聞報導、論壇、ModelHub資源等等。
PyTorch發展趨勢
為什麼要學PyTorch? 因為PyTorch發展迅猛,已經在多方面榮登深度學習框架第一的寶座,學術界絕大多數論文都有PyTorch實現,想要緊跟技術,利用新模型進行科學研究,進行專案開發的,不得不跟隨學術界的趨勢,所以可以看到PyTorch席捲各界。
PyTorch稱王,TensorFlow答應麼?一起來看看幾個資料。
圖1: 各大頂會期刊中,使用PyTorch的論文數量占PyTorch+TensorFlow的百分比。其實就是 p / (p+t),這裡有一個分界點就是50%,當達到50%時,說明PyTorch與TensorFlow平分秋色,當大於50%時說明PyTorch已經超過TF,而當資料超過75%,表明PyTorch已經是TF的兩倍。從這個趨勢可以發現轉捩點在2018-2019年之間發生,現在已經2021年末了,哪個框架是學術界的帶頭大哥?
圖2:這幅圖對比的是PyTorch與TF的決定數量,可以看到TF的份額被PyTorch一步步蠶食,實線代表的PyTorch持續上揚,TF的虛線不斷下探。
圖片出自:https://horace.io/pytorch-vs-tensorflow/
通過學術界的論文情況就可以說明PyTorch是未來的大勢所趨,雖然說早期PyTorch在工業部署上並不如TensorFlow,但是如今PyTorch推出了libtorch,TorchServe,以及各類優秀的,適配性良好的部署框架層出不窮,如TensorRT、OpenVINO、ONNX等,都可以幫助PyTorch進行快速部署
感覺PyTorch是在學術界佔據主導地位,讓科研工作者感到滿意,新模型都是PyTorch實現的,工業界的開發者總不能不用最新的演算法、模型,只能紛紛轉向PyTorch了。因此,相信大家選擇使用PyTorch進行深度學習、機器學習模型開發,一定能加速大家的演算法模型開發,也印證了PyTorch的主旨——An open source machine learning framework that accelerates the path from research prototyping to production deployment.”
留言列表