标題TX2 Jetpack4.3安裝pytorch1.4.0+torchvision0.5.0
1. 檢視安裝的jetpack版本
sudo pip3 install jetson-stats
sudo jtop
然後選擇5-INFO(鍵盤按5) 就可以清楚看到 Jetpack 版本,還有其他的硬體資訊;
2. 根據jetpack版本檢視支援的pytorch版本
由于TX2是arm架構,是以在pytorch官網無法安裝,目前清華源好像有1.8.0和1.8.1版本的pytorch(感謝蘋果M1帶動arm行業發展?)
首先可以去pytorch for jetson 官網檢視所需版本,如下圖:
選擇下載下傳需要的版本,我的是jetpack4.3版本,選擇了Python 3.6 - torch-1.4.0-cp36-cp36m-linux_aarch64.whl
由于不可描述的原因,下載下傳很慢,直接失敗,下面推薦百度雲下載下傳[連結]提取碼:5j45 (https://pan.baidu.com/s/11oSQ1n-mOGAx8BOVDiEx9w) ,有條件的直接在官網下載下傳新的,我之前也是下載下傳别人的1.4.0安裝之後報錯 “非法指令(核心已轉儲)”表示版本不對應;
下載下傳之後直接pip安裝即可。
3. 安裝torchvision
$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
$ git clone --branch v0.5.0 https://hub.fastgit.org/pytorch/vision torchvision # see below for version of torchvision to download
$ cd torchvision
$ export BUILD_VERSION=0.5.0 # where 0.x.0 is the torchvision version
$ python3 setup.py install --user
$ cd ../ # attempting to load torchvision from build dir will result in import error
$ pip install 'pillow<7' # always needed for Python 2.7, not needed torchvision v0.5.0+ with Python 3.6
先修改對應的版本,具體對應關系見下圖:
4. 測試
>>> import torch
>>> print(torch.__version__)
>>> print('CUDA available: ' + str(torch.cuda.is_available()))
>>> print('cuDNN version: ' + str(torch.backends.cudnn.version()))
>>> a = torch.cuda.FloatTensor(2).zero_()
>>> print('Tensor a = ' + str(a))
>>> b = torch.randn(2).cuda()
>>> print('Tensor b = ' + str(b))
>>> c = a + b
>>> print('Tensor c = ' + str(c))
>>> import torchvision
>>> print(torchvision.__version__)
沒有報錯安裝成功了!
下面是我安裝成功後的 pip list 各包的版本
appdirs 1.4.4
certifi 2020.12.5
chardet 4.0.0
cmake 3.18.4.post1
Cython 0.29.23
distlib 0.3.1
filelock 3.0.12
idna 2.10
importlib-metadata 3.7.3
importlib-resources 5.1.2
numpy 1.19.3
opencv-python 3.4.13.47
pbr 5.5.1
Pillow 6.2.2
pip 21.0.1
requests 2.25.1
setuptools 49.6.0.post20210108
stevedore 3.3.0
torch 1.4.0
torchvision 0.5.0
typing-extensions 3.7.4.3
urllib3 1.26.4
virtualenv 20.4.3
virtualenv-clone 0.5.4
virtualenvwrapper 4.8.4
wheel 0.36.2
zipp 3.4.1
5. 關于報錯
>>> import torch
非法指令 (核心已轉儲)
安裝了不合适版本的torch,同樣的安裝不合适版本的numpy也會報錯;
另外,我再編譯torchvision的時候最後停下了,大概是這個樣子:
Installed /home/nvidia/.local/lib/python3.6/site-packages/torchvision-0.5.0-py3.6-linux-aarch64.egg
Processing dependencies for torchvision==0.5.0
Searching for pillow>=4.1.1
Reading https://pypi.org/simple/pillow/
Downloading https://files.pythonhosted.org/packages/84/96/16ae48ded4a14a47bfceba39627625a91f1fb66e6d2d2214d5317f105cce/Pillow-8.2.0-cp36-cp36m-manylinux2014_aarch64.whl#sha256=c5236606e8570542ed424849f7852a0ff0bce2c4c8d0ba05cc202a5a9c97dee9
應該是安裝pillow庫的網絡有問題,重新執行指令即可!