深入淺出PyTorch_1_簡介和安裝

[toc]

PyTorch簡介

1.1.1 PyTorch的介紹

PyTorch是由Facebook人工智能研究小組開發(fā)的一種基于Lua編寫的Torch庫的Python實現(xiàn)的深度學(xué)習(xí)庫,目前被廣泛應(yīng)用于學(xué)術(shù)界和工業(yè)界,而隨著Caffe2項目并入Pytorch, Pytorch開始影響到TensorFlow在深度學(xué)習(xí)應(yīng)用框架領(lǐng)域的地位??偟膩碚f,PyTorch是當(dāng)前難得的簡潔優(yōu)雅且高效快速的框架。因此本課程我們選擇了PyTorch來進行開源學(xué)習(xí)。

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正在取代他的老大哥稱霸學(xué)術(shù)圈,PyTorch會借助ONNX所帶來的落地能力在工業(yè)界逐漸走向主導(dǎo)地位。

總的來說,我們必須承認到現(xiàn)在為止PyTorch還是有不如別的框架的地方,但是框架只是給我們提供了輪子,讓我們造汽車更加方便,最重要的還是我們個人的科學(xué)素養(yǎng)的提升。

image

1.1.3 PyTorch的優(yōu)勢

PyTorch有著下面的優(yōu)勢:

  • 更加簡潔,相比于其他的框架,PyTorch的框架更加簡潔,易于理解。PyTorch的設(shè)計追求最少的封裝,避免重復(fù)造輪子。
  • 上手快,掌握numpy和基本的深度學(xué)習(xí)知識就可以上手。
  • PyTorch有著良好的文檔和社區(qū)支持,作者親自維護的論壇供用戶交流和求教問題。Facebook 人工智能研究院對PyTorch提供了強力支持,作為當(dāng)今排名前三的深度學(xué)習(xí)研究機構(gòu),F(xiàn)AIR的支持足以確保PyTorch獲得持續(xù)的開發(fā)更新。
  • 項目開源,在Github上有越來越多的開源代碼是使用PyTorch進行開發(fā)。
  • 可以更好的調(diào)試代碼,PyTorch可以讓我們逐行執(zhí)行我們的腳本。這就像調(diào)試NumPy一樣 – 我們可以輕松訪問代碼中的所有對象,并且可以使用打印語句(或其他標(biāo)準(zhǔn)的Python調(diào)試)來查看方法失敗的位置。
  • 越來越完善的擴展庫,活力旺盛,正處在當(dāng)打之年。

PyTorch的安裝(m1環(huán)境)

本安裝教程主要參考
《金玉良緣易配而木石前盟難得|M1 Mac os(Apple Silicon)天生一對Python3開發(fā)環(huán)境搭建(集成深度學(xué)習(xí)框架Tensorflow/Pytorch)》

conda安裝

進入下載頁面:https://github.com/conda-forge/miniforge/#download 選擇mac arm64位架構(gòu):

image

下載成功后,進入命令行目錄,執(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版)安裝

當(dāng)前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)境

  1. 進入setting,進入Project Interpreter ,選擇解釋器-->show All
  2. 點擊右邊的+號
  3. 選擇Existing environment-->點擊省略號
  4. 選擇conda環(huán)境目錄(在annaconda安裝目錄的envs下面),進入環(huán)境文件夾后選擇python即可
  5. 選擇好后,一路點擊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

截圖_20211012140352.png

參考資料及相關(guān)材料

  1. Awesome-pytorch-list:目前已獲12K Star,包含了NLP,CV,常見庫,論文實現(xiàn)以及Pytorch的其他項目。
  2. PyTorch官方文檔:官方發(fā)布的文檔,十分豐富。
  3. Pytorch-handbook:GitHub上已經(jīng)收獲14.8K,pytorch手中書。
  4. PyTorch官方社區(qū):在這里你可以和開發(fā)pytorch的人們進行交流。
  5. M1 Mac os(Apple Silicon)天生一對Python3開發(fā)環(huán)境搭建(集成深度學(xué)習(xí)框架Tensorflow/Pytorch):M1配置python,照著配置就對了。
  6. 深入淺出PyTorch學(xué)習(xí)資料:教程淺顯易懂,初學(xué)者必備。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容