[toc]
PyTorch簡介
1.1.1 PyTorch的介紹
PyTorch是由Facebook人工智能研究小組開發(fā)的一種基于Lua編寫的Torch庫的Python實現(xiàn)的深度學習庫路狮,目前被廣泛應(yīng)用于學術(shù)界和工業(yè)界,而隨著Caffe2項目并入Pytorch歹茶, Pytorch開始影響到TensorFlow在深度學習應(yīng)用框架領(lǐng)域的地位±ぐ矗總的來說,PyTorch是當前難得的簡潔優(yōu)雅且高效快速的框架馒过。因此本課程我們選擇了PyTorch來進行開源學習臭脓。
1.1.2 PyTorch的發(fā)展
“All in Pytorch”,對于PyTorch的發(fā)展我們只能用一句話來概況了腹忽,PyTorch自從提出就獲得巨大的關(guān)注以及用戶數(shù)量的劇增来累,而最直觀的莫過于下面統(tǒng)計圖所表現(xiàn)的的簡明直了。
下圖來自Paper with code網(wǎng)站窘奏,顏色面積代表使用該框架的論文公開代碼庫的數(shù)量佃扼,我們可以發(fā)現(xiàn)截至2021年6月,PyTorch的代碼實現(xiàn)已經(jīng)是TensorFlow實現(xiàn)的4倍蔼夜,我們也可以看紅色部分的PyTorch正在取代他的老大哥稱霸學術(shù)圈兼耀,PyTorch會借助ONNX所帶來的落地能力在工業(yè)界逐漸走向主導地位。
總的來說求冷,我們必須承認到現(xiàn)在為止PyTorch還是有不如別的框架的地方瘤运,但是框架只是給我們提供了輪子,讓我們造汽車更加方便匠题,最重要的還是我們個人的科學素養(yǎng)的提升拯坟。
1.1.3 PyTorch的優(yōu)勢
PyTorch有著下面的優(yōu)勢:
- 更加簡潔,相比于其他的框架韭山,PyTorch的框架更加簡潔郁季,易于理解。PyTorch的設(shè)計追求最少的封裝钱磅,避免重復造輪子梦裂。
- 上手快,掌握numpy和基本的深度學習知識就可以上手盖淡。
- PyTorch有著良好的文檔和社區(qū)支持年柠,作者親自維護的論壇供用戶交流和求教問題。Facebook 人工智能研究院對PyTorch提供了強力支持褪迟,作為當今排名前三的深度學習研究機構(gòu)冗恨,F(xiàn)AIR的支持足以確保PyTorch獲得持續(xù)的開發(fā)更新。
- 項目開源味赃,在Github上有越來越多的開源代碼是使用PyTorch進行開發(fā)掀抹。
- 可以更好的調(diào)試代碼,PyTorch可以讓我們逐行執(zhí)行我們的腳本心俗。這就像調(diào)試NumPy一樣 – 我們可以輕松訪問代碼中的所有對象傲武,并且可以使用打印語句(或其他標準的Python調(diào)試)來查看方法失敗的位置。
- 越來越完善的擴展庫,活力旺盛谱轨,正處在當打之年。
PyTorch的安裝(m1環(huán)境)
本安裝教程主要參考
《金玉良緣易配而木石前盟難得|M1 Mac os(Apple Silicon)天生一對Python3開發(fā)環(huán)境搭建(集成深度學習框架Tensorflow/Pytorch)》
conda安裝
進入下載頁面:https://github.com/conda-forge/miniforge/#download 選擇mac arm64位架構(gòu):
下載成功后吠谢,進入命令行目錄土童,執(zhí)行命令進行安裝:
#進入命令行目錄
cd ~/Downloads
#執(zhí)行命令進行安裝
sudo bash ./Miniforge3-MacOSX-arm64.sh
隨后會有一些條款需要確認,一路Yes Yes...
然后編輯配置文件vim ~/.zshrc工坊,加入如下內(nèi)容:
path=('/Users/{您的mac用戶名}}/miniforge3/bin' $path)
export PATH
存盤之后執(zhí)行命令
source ~/.zshrc
配置好環(huán)境變量之后献汗,鍵入python3 ,顯示如下王污,即表示安裝完成
~python3
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:00:30)
[Clang 11.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
接下來罢吃,需要配置一下conda的國內(nèi)下載源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
基本環(huán)境配置完畢。
PyTorch (cpu版)安裝
當前arm64架構(gòu)的只支持3.9版本昭齐,所以我們來創(chuàng)建一個虛擬空間
尿招,這里提前將需要的基礎(chǔ)庫都一一安裝,因為如果不在創(chuàng)建虛擬空間時提前安裝阱驾,之后使用pip是安裝不上的
sudo conda create -n pytorch numpy matplotlib pandas python=3.9
安裝成功后就谜,激活環(huán)境:
source activate
(pytorch) ? conda activate pytorch
隨后下載arm64版本的pytorch安裝包:
https://github.com/wizyoung/AppleSiliconSelfBuilds/blob/main/builds/torch-1.8.0a0-cp39-cp39-macosx_11_0_arm64.whl
下載成功后,執(zhí)行安裝命令:
sudo pip install torch-1.8.0a0-cp39-cp39-macosx_11_0_arm64.whl
至此安裝成功里覆,一般這個過程沒啥坑丧荐。
PyTorch 測試
讓我們來試試Pytorch在M1芯片加持后的性能,編寫test_torch.py:
from tqdm import tqdm
import torch
@torch.jit.script
def foo():
x = torch.ones((1024 * 12, 1024 * 12), dtype=torch.float32)
y = torch.ones((1024 * 12, 1024 * 12), dtype=torch.float32)
z = x + y
return z
if __name__ == '__main__':
z0 = None
for _ in tqdm(range(10000000000)):
zz = foo()
if z0 is None:
z0 = zz
else:
z0 += zz
矩陣加法邏輯運算達到了45 it/s喧枷,torch短時間內(nèi)適配M1芯片虹统,如此性能已經(jīng)非常驚艷了。
PyCharm配置conda 虛擬環(huán)境
- 進入setting隧甚,進入Project Interpreter ,選擇解釋器-->show All
- 點擊右邊的+號
- 選擇Existing environment-->點擊省略號
- 選擇conda環(huán)境目錄(在annaconda安裝目錄的envs下面)车荔,進入環(huán)境文件夾后選擇python即可
- 選擇好后,一路點擊ok戚扳,直到setting界面夸赫,選擇好剛載入的環(huán)境解釋器,確認即可咖城。
Q: m1芯片是否支持安裝PyTorch(GPU版)?
A: 不支持(截止2021.10.12 https://discuss.pytorch.org/t/how-to-run-on-gpu-in-apple-m1/132071)
參考資料及相關(guān)材料
- Awesome-pytorch-list:目前已獲12K Star茬腿,包含了NLP,CV,常見庫,論文實現(xiàn)以及Pytorch的其他項目宜雀。
- PyTorch官方文檔:官方發(fā)布的文檔切平,十分豐富。
- Pytorch-handbook:GitHub上已經(jīng)收獲14.8K辐董,pytorch手中書悴品。
- PyTorch官方社區(qū):在這里你可以和開發(fā)pytorch的人們進行交流。
- M1 Mac os(Apple Silicon)天生一對Python3開發(fā)環(huán)境搭建(集成深度學習框架Tensorflow/Pytorch):M1配置python,照著配置就對了。
- 深入淺出PyTorch學習資料:教程淺顯易懂苔严,初學者必備定枷。