Jetson TX1安装pyTorch

安装步骤:

1. 配置SSD或者SD卡启动

详细步骤参考:https://www.cnblogs.com/haiyang21/p/10780827.html

注意:(1)SD卡在格式化的时候可能会出现ext4格式无法格式化的情况,可以选择只格式化Partition分区,我的情况是重新刷机后,只格式化了Partition分区,结果可行,并为验证是哪个原因引起的。

(2)设置开机SD卡启动,只需要修改SD卡中的/boot/extlinux/extlinux.conf文件,这样如果出现问题,可以拔出SD卡,系统会重新从emmc启动。

(3) SSD启动时无法开机自动挂在,所以在配置extlinux.conf文件时,需要修改emmc卡内的文件

2. 配置swapfile

如果不配置的话会由于空间不足导致错误:c++: internal compiler error: Killed (program cc1plus)

git clone https://github.com/jetsonhacks/postFlashTX1.git
cd postFlashTX1
ls
$ sudo ./createSwapfile.sh -d [directory location] -s [size in gigabytes] –a
[directory location]: 为swapfile创建的路径
[size in gigabytes]: 为swapfile创建的大小
-a:为开机启动

eg. sudo ./createSwapfile.sh -d /media/nvidia/JetsonUSB/ -s 8 -a

注意:我选择的时在usb上创建swapfile,格式化的方式与步骤1相同

3. 安装依赖库

sudo apt install libopenblas-dev libatlas-dev liblapack-dev
sudo apt install liblapacke-dev checkinstall # For OpenCV
sudo apt-get install python3-pip
 
pip3 install --upgrade pip3==9.0.1
sudo apt-get install python3-dev
 
sudo pip3 install numpy scipy # 这个花费的时间略长,20分钟到30分钟左右
sudo pip3 install pyyaml
sudo pip3 install scikit-build
#sudo apt-get -y install cmake
sudo apt install libffi-dev
sudo pip3 install cffi
sudo pip3 install protobuf

注意:cmake直接安装可能会由于版本过低导致安装pytorch失败,我选用的是编译源码方式安装指定版本

如果已经安装低版本,可以先卸载

sudo apt-get autoremove cmake

重新编译安装

wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz
tar -zxvf cmake-3.9.6.tar.gz
cd cmake-3.9.6/
./bootstrap
make
make install

4. 配置cudnn路径

sudo gedit ~/.bashrc
export CUDNN_LIB_DIR=/usr/lib/aarch64-linux-gnu
export CUDNN_INCLUDE_DIR=/usr/include
source ~/.bashrc

5. 下载pytorch源码

git clone http://github.com/pytorch/pytorch
cd pytorch
sudo pip3 install -U setuptools
sudo pip3 install -r requirements.txt
git submodule update --init --recursive

6. 配置NCCL为false以免编译过程中出现编译错误

CMakeList.txt中设置NCCL=False
setup.py中添加NCCL=False

install NCCL

https://github.com/NVIDIA/nccl

https://developer.nvidia.com/nccl

7. 编译安装

sudo python setup.py build develop
sudo python setup.py install

 8. 验证安装是否成功

# Verify CUDA (from python interactive terminal)
import torch
print(torch.cuda.is_available())
a = torch.cuda.FloatTensor(2)
print(a)
b = torch.randn(2).cuda()
print(b)
c = a + b
print(c)

需要注意的是使用jetson pack3.3重新刷机,避免编译错误。因为pytorch1.0需要cudnn7.0,编译过程中

可能会遇到protobuf找不到的问题,可以执行 pip install protobuf安装,再重新编译即可,同时需要关闭NCCL,在CMakeList.txt中将NCCL=False,

并且在setup.py中添加 USE_NCCL=False。

参考链接:

https://www.ncnynl.com/archives/201705/1629.html

https://blog.csdn.net/qq_36302589/article/details/88306550

环境配置:设置swap大小,清理空间,避免编译时出现空间不足导致编译错误

https://github.com/jetsonhacks/postFlashTX1

https://blog.csdn.net/hit2015spring/article/details/62217289

原文地址:https://www.cnblogs.com/haiyang21/p/10708196.html