天天看點

〖Pytorch筆記0〗Ubuntu16.04系統Anaconda下安裝Pytorch(基于conda或pip)

目錄

         一. 基于conda安裝

1.1. 修改conda鏡像源

1.2 conda安裝Pytorch下載下傳過慢解決辦法

1.3. 安裝Pytorch

二. 基于pip檔案安裝

2.1. 配置鏡像源

2.2. 下載下傳.whl安裝檔案

2.3. 安裝pytorch

2.4. 測試

三. Pytorch能做什麼?

3.1. GPU加速

3.2. 自動求導

3.3. 常用網絡層

一. 基于conda安裝

  • 我們在Ubuntu下用pip或者conda安裝軟體包都容易龜速最終導緻失敗,但是嗑鹽的我們耽誤不起時間,是以要找一個最好最快的安裝的方式,以下我介紹基于conda和pip的兩種安裝方式,先保證電腦裡已經安裝好了Anaconda。

1.1. 修改conda鏡像源

  • 在一個Anconda環境中建立一個pytorch環境,用于在裡面安裝所需要的包,
[email protected]:~$ conda create -n pytorch python=3.6
           
  • 有不了解的可以參考我之前的文檔:linux筆記:使用conda指令管理包、管理環境詳細講解_布衣小張-CSDN部落格;在終端中運作以下指令修改鏡像源,可以明顯加速安裝,使用清華conda鏡像。
conda config --prepend channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
           
注意:更新2019-07-06,由于清華源已經封閉,可以使用國科大。
# 或者使用國科大鏡像源
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
           
注意:更新2019-10-01,清華源已經可以繼續使用。 
  • 要檢視鏡像源是否安裝成功的話,建議終端中運作以下指令:
[email protected]:~$ conda config --set show_channel_urls yes
           
  • 會生成一個~/.condarc檔案,運作cat指令檢視檔案内容。
(pytorch) [email protected]:~$ cat ~/.condarc
#會顯示如下:
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - defaults
show_channel_urls: true
report_errors: true
           
  • 這樣每次用conda安裝時,在package右邊都會顯示安裝源的位址,那麼我們對于安裝的時間能有一個大緻的估計。修改後,用conda安裝鏡像源中任何庫都能明顯加速,在我的電腦上安裝速度級可以達到MB/s 

1.2 conda安裝Pytorch下載下傳過慢解決辦法

  • 當使用conda安裝的時候,可能會遇到下載下傳過慢的問題,下載下傳的時候可能會遇到無盡的等待。這裡推薦用清華源替代預設conda源的方法,可以解決下載下傳過慢的問題。
  • 添加清華源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
           
  • 另外為了保險起見,建議同時添加第三方conda源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
           
  •  根據Python和CUDA選擇對應的版本,然後官方給出提示可通過運作:
〖Pytorch筆記0〗Ubuntu16.04系統Anaconda下安裝Pytorch(基于conda或pip)
  • 但是這裡一定要注意,去掉-c pytorch,安裝的時候才會預設從清華源下載下傳相應的包,是以這裡用指令行
conda install pytorch torchvision cudatoolkit=10.0
           

1.3. 安裝Pytorch

〖Pytorch筆記0〗Ubuntu16.04系統Anaconda下安裝Pytorch(基于conda或pip)
〖Pytorch筆記0〗Ubuntu16.04系統Anaconda下安裝Pytorch(基于conda或pip)
  • 我安裝的方法是conda+python3.6+cuda8.0,是以安裝指令如下:(根據PyTorch選擇适合自己的)
zhangkf@Ubuntu2:~$ conda install pytorch torchvision cuda80 -c pytorch
           

二. 基于pip檔案安裝

  • 2020-06-19:參考連結:Ubuntu16.04+Pytorch1.4.0+cuda10.0的pip安裝
# 當直接按照PyTorch官網安裝時,
pip install torch===1.5.0 torchvision===0.6.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install torch===1.4.0 torchvision===0.5.0 -f https://download.pytorch.org/whl/torch_stable.html

# 輸入:
python -c "import torch; print(torch.version.cuda)"

# 輸出:
10.1

# 輸入:nvcc -V

# 輸出:
10.0

# 是以,此時pytorch的cuda版本和系統的cuda版本是不比對的。解決方法:
pip install torch===1.4.0+cu100 torchvision===0.5.0+cu100 -f https://download.pytorch.org/whl/torch_stable.html
           
  • 查python解釋器的位置
import sys
print(sys.executable)  #解釋器
           
  • 2020-09-14:參考連結:PyTorch碎片:PyToch和Torchvision對應版本
  • 有時候基于conda安裝pytorch,下載下傳速度會非常的慢,這個時候可以考慮用這個方法,也是很簡單的。首先建立一個環境:
[email protected]:~$ conda create -n pytorch python=3.6
           
  • 建立完畢進入環境中:
[email protected]:~$ conda activate pytorch
           

2.1. 配置鏡像源

  • 請參考博文Ubuntu16.10下配置pip國内鏡像源加速安裝. 這一步是為加速安裝torch vision進行的。

2.2. 下載下傳.whl安裝檔案

  • 可以按pytorch安裝指南的網址Previous PyTorch Versions | PyTorch,選擇适合自己的版本。我選擇的是下面
  • Pytorch離線安裝包連結1
  • Pytorch離線安裝包連結2
  • 清華鏡像下載下傳pytorch安裝包3,對應得方法:pytorch安裝(線上與離線,推薦離線)
  • 2021年8月18日:https://download.pytorch.org/whl/torch_stable.html
  • 對應上面:CUDA10.2安裝+pytorch1.7.1安裝+torchvision0.8.2安裝 + cudnn安裝(深度學習GPU加速)_java_pythons的部落格-CSDN部落格
〖Pytorch筆記0〗Ubuntu16.04系統Anaconda下安裝Pytorch(基于conda或pip)
  • pip install -U -r requirements.txt
               
# pip install -r requirements.txt

# base ----------------------------------------
Cython
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
pillow
PyYAML>=5.3
scipy>=1.4.1
tensorboard>=2.2
torch>=1.6.0
torchvision>=0.7.0
tqdm>=4.41.0

# coco ----------------------------------------
# pycocotools>=2.0

# export --------------------------------------
# packaging  # for coremltools
# coremltools==4.0b3
# onnx>=1.7.0
# scikit-learn==0.19.2  # for coreml quantization

# extras --------------------------------------
# thop  # FLOPS computation
# seaborn  # plotting
           

2.3. 安裝pytorch

  • 把下載下傳好的檔案傳輸到伺服器中,進入剛剛建立好環境,用pip install .whl檔案即可。
(pytorch) [email protected]:~$ pip install torch-0.3.0.post4-cp27-cp27mu-linux_x86_64.whl
(pytorch) [email protected]:~$ pip install torch vision
           
  • 有了鏡像加持和.whl檔案的本地化,安裝很順利 ,torch vision安裝非常迅速。

2.4. 測試

  • 在終端中按以下順序運作指令python。
(second) [email protected]:~/code$ ipython
Python 3.7.6 | packaged by conda-forge | (default, Mar 23 2020, 23:03:20) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.14.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import torch                                                                          

In [2]: torch.cuda.is_available()                                                             
Out[2]: True

In [3]:  
 
           
  • 上面顯示true就是安裝成功。
注意:安裝過程中如果遇到這樣的問題,安裝過程中出錯: Could not import setuptools ,或者 Failed building wheel for pyyaml,問題簡寫了,看看有沒有這幾個關鍵詞。有的話的請參考我的文章:問題會得到解決,安裝過程中不報錯的話即代表安裝成功,然後開始入坑吧.祝你好運。『linux筆記』pip 安裝keras,pytorch出錯: Could not import setuptools ,Failed building wheel for pyyaml_布衣小張-CSDN部落格。

三. Pytorch能做什麼?

  • 動态圖:計算的進行和代碼的運作是同時的。
  • 靜态圖:先建構函數,之後便不能更改,隻能喂資料。好處:一次成型,一旦建好之後使用起來非常友善,不需要自己中間修改。問題:比如TensorFlow自建了一套命名體系,中間的所有變量和時序的控制邏輯都是使用自己的,用Python寫的時候就非常麻煩,是以TensorFlow2.0支援動态圖優先。

3.1. GPU加速

  • 代碼如下
import 	torch
import  time
print(torch.__version__)
print(torch.cuda.is_available())

# print('hello, world.')

a = torch.randn(10000, 1000)
b = torch.randn(1000, 2000)

t0 = time.time()
c = torch.matmul(a, b)
t1 = time.time()
print(a.device, t1 - t0, c.norm(2))

device = torch.device('cuda')
a = a.to(device)
b = b.to(device)

t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))

t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))
           
  • 運作結果
1.0.1.post2
True
cpu 0.06677007675170898 tensor(141467.7188)
cuda:0 0.002493143081665039 tensor(141467.7188, device='cuda:0')
cuda:0 0.0007426738739013672 tensor(141467.7188, device='cuda:0')
           

3.2. 自動求導

  • 自動求導,對神經網絡中的weight更新時非常友善
  • 求下面這個函數在x=1處對a,b,c的導數!
〖Pytorch筆記0〗Ubuntu16.04系統Anaconda下安裝Pytorch(基于conda或pip)
  • 代碼
import  torch
from    torch import autograd

x = torch.tensor(1.)
a = torch.tensor(1., requires_grad=True) # 後面這一部分告訴Pytorch對a進行求導
b = torch.tensor(2., requires_grad=True)
c = torch.tensor(3., requires_grad=True)

y = a**2 * x + b * x + c

print('before:', a.grad, b.grad, c.grad)
grads = autograd.grad(y, [a, b, c])
print('after :', grads[0], grads[1], grads[2])
           
  • 運作結果
before: None None None
after : tensor(2.) tensor(1.) tensor(1.)
           

3.3. 常用網絡層

  • pytorch中封裝了大量的神經網絡需要的運算以及程式結構的一些接口。
〖Pytorch筆記0〗Ubuntu16.04系統Anaconda下安裝Pytorch(基于conda或pip)
  • 部分參考了作者:Ubuntu16.04下Pytorch安裝(基于conda或pip)_yucicheung的部落格-CSDN部落格