本文安裝的步驟不包含cuda
參考資料:
【1】https://pytorch.org/get-started/locally/ (官網)
【2】https://github.com/pytorch/pytorch#from-source (pytorch github項目)
【3】https://blog.csdn.net/qq_15192373/article/details/81091098 (anaconda安裝,使用的清華的鏡像)
一.安裝anaconda(實際是安裝miniconda)(下面的命令選擇的是清華的鏡像,參考的【3】)
1.1 curl -O https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh 【命令】
(或者使用官方鏡像,沒有試curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh)
1.2 sh Miniconda3-latest-Linux-x86_64.sh 【命令】
安裝的時候按照提示按回車鍵或輸入yes
注意:安裝的過程中會修改~/.bashrc,要重新打開終端或source ~/.bashrc纔會把conda的路徑加入到PATH環境變量中
二.安裝依賴(參考【2】中的源碼安裝)
conda install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing (mlk的時間有點長128.9M)
git clone --recursive https://github.com/pytorch/pytorch (時間較長,我用虛擬機花了10個小時左右)
cd pytorch
(# if you are updating an existing checkout
git submodule sync
git submodule update --init --recursive)
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py install
三.遇到的問題
3.1 問題描述如下:
FAILED: caffe2/CMakeFiles/torch_cpu.dir/ideep/operators/operator_fallback_ideep.cc.o
......
c++: internal compiler error: Killed (program cc1plus)
解決辦法:
在tools/build_pytorch_libs.py中將
max_jobs = os.getenv('MAX_JOBS', str(multiprocessing.cpu_count()))
改爲
max_jobs = '1'
四.測試
from __future__ import print_function
import torch
x = torch.rand(5, 3)
print(x)
輸出:
tensor([[0.3380, 0.3845, 0.3217],
[0.8337, 0.9050, 0.2650],
[0.2979, 0.7141, 0.9069],
[0.1449, 0.1132, 0.1375],
[0.4675, 0.3947, 0.1426]])
在測試的時候遇到下面的錯誤:
No module named 'torch._C'
原因是在pytorch的源碼目錄運行的python然後輸入的程序,不能再pytorch的源碼目錄執行,因爲安裝完後會在site-packages下安裝torch,應該用那個。而在源碼目錄下運行時會用源碼裏的torch,裏面沒有_C(我的安裝目錄生成的是_C.cpython-37m-x86_64-linux-gnu.so)