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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM