Mac下Pytorch-GPU 0.3源碼編譯安裝

雖然pytorch官方有一個mac下的編譯指南,但是還是不是很詳細,一路過來我也遇到了許多問題。

網上雖然有一些mac 下pytorch-gpu版,但是別人編譯的有的時候和自己機器不是很兼容。所以需要自己來編譯一下。

因爲我正好需要用gpu版的pytorch 0.3版,python 2.7,但是在網上找了半天都沒找到,所以只能自己動手了。

如果不需要gpu版的小夥伴安裝pytorch那是非常簡單的,可以看一下我寫的這個教程mac下安裝pytorch,幾條命令就ok。

1. Conda安裝python環境

假設已經安裝好了anconda,這裏我需要的是python2.7,所以直接conda一個環境就可以了。

conda create -n pytorch_gpu_0.3 python=2.7

環境創建好之後,激活一下環境,在這個環境下進行操作。

source activate pytorch_gpu_0.3

2. 下載pytorch源碼

是需要下載自己需要版本的pytorch源碼,這裏我需要的是0.3版的,所以把0.3版的clone下來。

git clone --branch v0.3.1 https://github.com/pytorch/pytorch.git

然後進入到文件夾裏,

cd <你自己的目錄>/pytorch

最開始clone的時候,submodule的內容並不會自動下載下來,如果不下載下來子模塊的文件的話,會缺少相應的文件。

此時,只需執行如下命令:

git submodule update --init

然後稍微等一會就下完了。

3. 檢查Clang版本

我的Clang版本是9.0,但是當前的CUDA與Clang版本中的CommandLineTools不兼容。我們需要使用XCODE 8.2的CommandLineTools。通過這條命令查看clang版本

clang --version 

要是和上面這個圖顯示的不一樣的話,那麼就需要下載了。

步驟如下:

 

  1. 登錄 https://developer.apple.com/downloads/
  2. 下載Xcode CLT (Command Line Tools) 8.2  (不方便下載的同學,我下好了傳到了百度雲上,需要自取 https://pan.baidu.com/s/1troDTmqM8X_ibV0a7h7nNA 密碼: ucmd)
  3. 安裝 CLT
  4. 執行 
    sudo xcode-select --switch /Library/Developer/CommandLineTools
  5. 再次輸入命令行查看clang版本,按理說現在應該就是對的了

4. 編譯Pytorch

然後開始編譯GPU版的pytorch,這裏我假設你的CUDA之類的已經都安裝好了。

還有一個需要注意的是,需要安裝一下依賴包:

conda install numpy pyyaml mkl mkl-include setuptools cmake cffi typing

然後直接運行下面這些命令,

export CMAKE_PREFIX_PATH=<換成你的anconda根目錄 >,下面的命令是我的,那個CUDNN的目錄可能你也需要根據你自己的進行調整。

export CMAKE_PREFIX_PATH=/Users/ray/anaconda2

CUDNN_LIB_DIR="/Developer/cudnn/lib/"

CUDNN_INCLUDE_DIR="/Developer/cudnn/include/"

MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install

然後等啊等啊等,編譯的時候cpu應該佔用率差不多要100%了,在我的電腦上面大概是花了1個小時的樣子。

 

安裝完成之後,然後就趕緊來測試一下吧。這裏有一個坑

熟練地python,import torch,然後就會報錯,差不多都這種的

ModuleNotFoundError: No module named 'torch._C'

查了下pytorch repo的issues,果然很多人遇到

作者淡定說,不要在pytorch項目根目錄下導入torch,非常的神奇!!!所以cd ..一下在import torch,一般就可以了

 

需要注意的是,使用源碼安裝 pytorch的時候,是沒有安裝 torchvision的。所以也需要使用

pip install torchvision

,或者從源碼安裝。

 

5. 打包生成whl

cd 到pytorch項目中,然後和安裝的時候差不多的,

MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py bdist_wheel

不過目前我生成的不好用,不知道爲什麼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章