PyTorch 的誕生
2017 年 1 月,F(xiàn)AIR(Facebook AI Research)發(fā)布了 PyTorch。PyTorch 是在 Torch 基礎(chǔ)上用 python 語言重新打造的一款深度學(xué)習(xí)框架。Torch 是采用 Lua 語言為接口的機(jī)器學(xué)習(xí)框架,但是因為 Lua 語言較為小眾,導(dǎo)致 Torch 學(xué)習(xí)成本高,因此知名度不高。
PyTorch 的發(fā)展
- 2017 年 1 月正式發(fā)布 PyTorch。
- 2018 年 4 月更新 0.4.0 版,支持 Windows 系統(tǒng),caffe2 正式并入 PyTorch。
- 2018 年 11 月更新 1.0 穩(wěn)定版,已成為 Github 上增長第二快的開源項目。
- 2019 年 5 月更新 1.1.0 版,支持 TensorBoard,增強(qiáng)可視化功能。
- 2019 年 8 月更新 1.2.0 版,更新 Torchvision,torchaudio 和torchtext,支持更多功能。
- 目前 PyTorch 有超越 Tensorflow 的趨勢。
- ...
PyTorch 優(yōu)點
- 上手快,掌握 Numpy 和基本深度學(xué)習(xí)概念即可上手。
- 代碼簡潔靈活,使用 nn.Module 封裝使得網(wǎng)絡(luò)搭建更加方便 ?;趧討B(tài)圖機(jī)制,更加靈活。
- 資源多,arXiv 中新論文的算法大多有 PyTorch 實現(xiàn)。
- 開發(fā)者多,Github 上貢獻(xiàn)者(Contributors)已經(jīng)超過 1100+
- ...
PyTorch 實現(xiàn)模型訓(xùn)練的 5 大要素
<div align="center"><img src="https://image.zhangxiann.com/圖片1.png"/></div>
- 數(shù)據(jù):包括數(shù)據(jù)讀取,數(shù)據(jù)清洗,進(jìn)行數(shù)據(jù)劃分和數(shù)據(jù)預(yù)處理,比如讀取圖片如何預(yù)處理及數(shù)據(jù)增強(qiáng)。
- 模型:包括構(gòu)建模型模塊,組織復(fù)雜網(wǎng)絡(luò),初始化網(wǎng)絡(luò)參數(shù),定義網(wǎng)絡(luò)層。
- 損失函數(shù):包括創(chuàng)建損失函數(shù),設(shè)置損失函數(shù)超參數(shù),根據(jù)不同任務(wù)選擇合適的損失函數(shù)。
- 優(yōu)化器:包括根據(jù)梯度使用某種優(yōu)化器更新參數(shù),管理模型參數(shù),管理多個參數(shù)組實現(xiàn)不同學(xué)習(xí)率,調(diào)整學(xué)習(xí)率。
- 迭代訓(xùn)練:組織上面 4 個模塊進(jìn)行反復(fù)訓(xùn)練。包括觀察訓(xùn)練效果,繪制 Loss/ Accuracy 曲線,用 TensorBoard 進(jìn)行可視化分析。
整個系列的學(xué)習(xí)都會圍繞著這 5 個方面來展開。
安裝
在開發(fā)過程中可能會有多個項目同時進(jìn)行,不同項目之間使用的 Python 版本和一些庫的版本不一樣,這就會導(dǎo)致沖突。因此這里使用 Anaconda 來管理多個 Python 虛擬環(huán)境。Anaconda 是為了方便使用 Python 而建立的一個軟件包,包含常用 的 250 多個工具包,多個版本的 Python 解釋器和強(qiáng)大的虛擬環(huán)境管理工具。各個環(huán)境之間相互獨立,可任意切換。
<div align="center"><img src="https://image.zhangxiann.com/20200515135222.png"/></div>
安裝 Anaconda
- 到官網(wǎng) https://www.anaconda.com/products/individual 選擇適合自己系統(tǒng)的 64 位安裝包,注意選擇 Python3 以上的版本。
<div align="center"><img src="https://image.zhangxiann.com/20200515140549.png"/></div>
- 安裝時記得勾選
Add Anaconda to my PATH environment variable添加到環(huán)境變量中。 - 安裝完成后打開
cmd,輸入conda回車出現(xiàn)如下信息,即為安裝成功。
<div align="center"><img src="https://image.zhangxiann.com/20200515140909.png"/></div>
- 接著添加中科大鏡像或者清華鏡像,在安裝庫的時候?qū)崿F(xiàn)加速下載。
安裝 PyTorch
- 檢查是否有支持 CUDA 的 GPU,若有,需要安裝 CUDA 和CuDNN。
- 進(jìn)入 PyTorch 官方網(wǎng)站 https://pytorch.org/get-started/locally/選擇自己需要安裝的 PyTorch 對應(yīng)的命令,在本地 cmd 中輸入安裝命令即可。這里我本機(jī)選擇使用 conda 安裝不支持 GPU 的 1.5 版本:
conda install pytorch torchvision cpuonly -c pytorch。
<div align="center"><img src="https://image.zhangxiann.com/20200515141725.png"/></div>
如果 conda 或者 pip 安裝很慢,也可以直接進(jìn)入 https://download.pytorch.org/whl/torch_stable.html 下載 whl 包到本地安裝。該頁面包含了所有歷史版本和各個平臺的 PyTorch,需要根據(jù)文件名選擇自己需要的版本進(jìn)行下載。文件命名規(guī)則如下所示:
第一部分是 cuda 版本或者 cpu,第二部分是 PyTorch 版本號,第三部分是 Python 版本號,第四部分是操作系統(tǒng)。
cu92/torch-1.5.0%2Bcu92-cp37-cp37m-linux_x86_64.whl
Pycharm 使用 Anaconda 環(huán)境
在 Pycharm 中新建項目后,需要在 File -> Settings -> Project -> Python Interpreter 中選擇 Anaconda 環(huán)境。
首先點擊齒輪圖標(biāo),點擊彈出的add,
<div align="center"><img src="https://image.zhangxiann.com/20200515143403.png"/></div>
接著在彈出的窗口中選擇Conda Environment,Conda execute 選擇你安裝好的 Anaconda 的文件夾下的Scripts\conda.exe。
<div align="center"><img src="https://image.zhangxiann.com/20200515143634.png"/></div>
最后在Python Interpreter給當(dāng)前項目選擇剛剛創(chuàng)建的 Python 環(huán)境即可。
<div align="center"><img src="https://image.zhangxiann.com/20200515143854.png"/></div>
如果安裝的是 GPU 版本,安裝完成之后可以使用print(torch.cuda.is_available())語句來查看安裝好的 PyTorch 是否支持 GPU。這里我是用的是 CPU 版本。
<div align="center"><img src="https://image.zhangxiann.com/20200515144017.png"/></div>
參考資料
如果你覺得這篇文章對你有幫助,不妨點個贊,讓我有更多動力寫出好文章。
我的文章會首發(fā)在公眾號上,歡迎掃碼關(guān)注我的公眾號張賢同學(xué)。
<div align="center"><img src="https://image.zhangxiann.com/QRcode_8cm.jpg"/></div>