Jetson-tx2-Installation, Pytorch, Yolov5, OpenCV-Python, Onnxruntime-GPU
Die Umgebung ist wie folgt
- System: Ubuntu18.04
- Jetpack: 4.5.1
- cuda:10.2
- versteckt: 8.0.0
- Pytorch: 1.7
- Torchvison: 0.8.1
- opencv:4.5.4
- archiconda3
Installation und Sicherung des Systemabbilds
Wiederherstellung des Systemabbilds
Rufen Sie den Brennmodus auf:
Verbinden Sie die Maschine über das USB-Datenkabel mit der virtuellen Maschine ubunutu18.04, halten Sie dann die Repower-Taste lange gedrückt und drücken Sie dann die Reset-Taste, um in den Brennmodus zu wechseln.
Hinweis: Verwenden Sie für die Installation im Allgemeinen eine andere virtuelle Maschine oder einen Linux-Link-
Spiegel
# 替换镜像文件,本例是将刚克隆的镜像替换为系统镜像的操作
root@mm-desktop:~/tx2-NX/tx2-BIOS-4.5/tx2-nx4.5.1sdk# cd bootloader/
root@mm-desktop:~/tx2-NX/tx2-BIOS-4.5/tx2-nx4.5.1sdk/bootloader# mv system.img system.img.bak
root@mm-desktop:~/tx2-NX/tx2-BIOS-4.5/tx2-nx4.5.1sdk/bootloader# cp ../clone.img system.img
root@mm-desktop:~/tx2-NX/tx2-BIOS-4.5/tx2-nx4.5.1sdk/bootloader# cd ../../
# 烧录镜像
root@mm-desktop:~/tx2-NX/tx2-BIOS-4.5# ./run_tx2_bios_4.5.1.sh
Spiegelsicherung
root@mm-desktop:~/tx2/tx2-BIOS-4.5# ls
run_tx2_bios_4.5.1.sh tx2-nx4.5.1sdk tx2-nx4.5.1sdk.tar.gz
root@mm-desktop:~/tx2/tx2-BIOS-4.5# cd tx2-nx4.5.1sdk/
root@mm-desktop:~/tx2/tx2-BIOS-4.5/tx2-nx4.5.1sdk# sudo ./flash.sh -r -k APP -G clone.img jetson-xavier-nx-devkit-tx2-nx mmcblk0p1
...
[ 13.2921 ] Reading partition
[ 13.2964 ] tegradevflash_v2 --read APP /home/xm/tx2-NX/tx2-BIOS-4.5/tx2-nx4.5.1sdk/clone.img
[ 13.3010 ] Bootloader version 01.00.0000
[ 13.4607 ] [................................................] 100%
[ 1919.0289 ]
*** The [APP] has been read successfully. ***
Converting RAW image to Sparse image...
# 成功后,会在该目录下生成clone.img和clone.img.raw 两个文件
Desktop des Erntesystems
Später werde ich im Detail erklären, warum das System gekürzt werden sollte
apt-get purge xorg* -y
apt-get purge x11* -y
apt-get purge gnome* -y
apt-get purge printer-driver-* -y
apt-get purge libreoffice* -y
apt autoremove -y
cuda, cudnn-Installation
cd install_cuda
bash install_package.sh
#选择1安装cuda,之后选择2安装cudnn
Verschieben Sie cuda auf eine andere Festplatte. Dabei müssen Sie sicherstellen, dass das System zusätzlich zu den mitgelieferten 16 GB Speicher über eine Festplatte verfügt, auf der Dateien gespeichert werden können. Der Grund wird später erläutert.
# files为其他硬盘挂载目录
mv /usr/local/cuda-10.2 /files
# 修改cuda环境变量
vim ~/.bashrc
#修改如下:
export CUDA_HOME=/files/cuda-10.2
export LD_LIBRARY_PATH=/files/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/files/cuda-10.2/bin:$PATH
archiconda3
Warum archiconda3 verwenden? Eine davon besteht darin, die Verwaltung der Umgebung zu erleichtern. Um diese Testmaschine zu vergleichen, müssen Sie viele verschiedene Umgebungen installieren, um verschiedene Modelle zu testen. Durch die Installation unter der montierten Festplatte wird das Problem des unzureichenden Speichers gelöst
bash archiconda3.sh
Installieren Sie Pytorch, Torchvison, OpenCV-Python, Onnxruntime-GPU
Installieren Sie Pytorch
Der Grund, warum pytorch1.7 letztendlich verwendet wurde, liegt darin, dass die Quellcodekompilierung der neuesten Version von pytorch1.11 viel Speicher erfordert. Wenn der Speicher nicht ausreicht, können wir ihn nur durch Austauschen ausgleichen. Pytorch kann nur kompiliert werden, wenn der Swap auf 8 GB erweitert wird. Das System benötigt 5-6 GB, cudnn belegt bereits Hunderte von MB im Stammverzeichnis, ich habe nur noch 9,1 GB übrig, nachdem ich die obigen Schritte ausgeführt habe, weshalb der Systemdesktop sein muss beschnitten und Cuda müssen entfernt werden. Hinweis: Ich weiß nicht, wie man kleine Systeme erstellt, und ich habe nicht die Voraussetzungen, sie bereitzustellen
installpytorch1.11
Im Verzeichnis „third_party“ werden viele Dateien fehlen. Ich weiß nicht, ob das an meinem Netzwerk oder anderen Gründen liegt. Gehen Sie einfach zu Github, um sie einzeln zu finden. Beginnen wir mit den
Abhängigkeiten
apt install libatlas-dev liblapack-dev
apt install liblapacke-dev checkinstall
apt install libffi-dev
apt install ninja-build
apt install cmake (cmake version > 3.17)
Als nächstes sind die von der Umgebung benötigten Pakete aufgeführt. Da der gesamte Zyklus etwas lang ist, ist nicht sicher, welche Pakete erforderlich sind. Es müssen jedoch mehrere große Pakete oben installiert werden
pip install cython
pip install numpy
pip install pyyaml
pip install scikit-build
pip install cffi
pip install typing-extensions
pip install dataclass
Installieren Sie abschließend pytroch1.11
cd torch
mkdir build
cd buld
cmake ..
make -j6
cd ..
python setup.py install
# 由于我直接最后一步一直报错所以尝试了这种办法,可行
Dies ist sehr mühsam und kann leicht beschädigt werden. Das Kompilieren dauert 5 bis 6 Stunden ohne Probleme. Ich habe es in den 2 Stunden, in denen andere Blogs geschrieben haben, nicht erlebt. Möglicherweise liegt es an Versionsproblemen. Je neuer die mehr Unterstützung Es müssen mehr Dateien kompiliert werden; daher habe ich nach kontinuierlicher Erkundung einen einfacheren Weg gefunden, lesen Sie weiter unten
installpytorch1.7
Warum ist es 1.7, weil ich keine anderen Versionen von Pytorch heruntergeladen habe? Dies ist eine WHL-Datei, das heißt, Nvidia hat sie bereits kompiliert
Fügen Sie den von Nvidia bereitgestellten Link zum Installationspaket ein: https://elinux.org/Jetson_Zoo#PyTorch_.28 Die neueste Version von Caffe2.29 ist nur 1.10
apt-get install libopenblas-base libopenmpi-dev python3-pip
pip install torch-1.7.0...
Das ist einfach und bequem, aber hier kommt das Problem: Ich habe das entsprechende Torchvision-WHL-Installationspaket für Nvidia nicht gefunden. Nach der Suche kann ich zum Kompilieren nur den Quellcode verwenden, andernfalls muss die Version dieses Ortes korrekt sein Es werden nur endlose Fehler gemeldet. Der Fehler wird als zweifelhaft gemeldet. Die Version kann nur auf der offiziellen Website überprüft werden: https://pytorch.org/get-started/ previous-versions/
Torchvision installieren
Immer noch 8g Tausch
git clone -b v0.8.1 https://github.com/pytorch/vision vision-0.8.1
cd vision-0.8.1
sudo python3 setup.py install
Installieren Sie opencv-python
Es wird ein fehlendes Paket geben, ich bin mir nicht sicher, ob es an meinem Netzwerk liegt, aber der Download ist während der Installation sehr langsam und es ist leicht, Fehler wie boostdesc_bgm.i, vgg_generated_48.i und andere Download-Adressen https:// zu melden. download.csdn.net/download/m0_37661841/44322678
git clone https://github.com/opencv/opencv.git
git checkout <你所要用的 OpenCV 版本,建议是用最新版>
git clone git://github.com/Itseez/opencv_contrib
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D BUILD_opencv_python3=YES \
-D CMAKE_INSTALL_PREFIX=./install \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
# Contrib path
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
# Your virtual environment's Python executable
# You need to specify the result of echo $(which python)
-D PYTHON_EXECUTABLE=~/env/bin/python \
-D BUILD_EXAMPLES=ON ..
make install
Installieren Sie onnxruntime-gpu
pip install onnxruntime-gpu==1.7
Yolov5-Test
Mein Test hat etwas zusätzliche Logikverarbeitung, vielleicht ist die Leistung etwas schlechter als die Originalversion, aber nicht zu viel
Modell | Eingabegröße | Geschwindigkeit |
---|---|---|
yolov5s | 640*384 | 100 ms |
yolov5s6 | 1280*768 | 300 ms |
Nach Abschluss der Installation kann der Swap freigegeben und die Datei gelöscht werden, und es sind noch 4 GB Speicherplatz vorhanden. Bei der Bereitstellung können Sie archiconda3 in das Stammverzeichnis verschieben, sodass es ohne Mounten der Festplatte verwendet werden kann; geschrieben unter Das Ende: Tatsächlich sind das alles
kleine Probleme, unzureichender Speicher, unzureichender Speicherplatz, fehlende Dateien, welche Dateien verschoben werden können und welche nicht usw., aber die Blogger kopieren und fügen diese kleinen Probleme ein, niemand zeichnet diese kleinen Probleme von swap2GB auf auf 4 GB auf 6 GB auf 8 GB, ständig versuchen, am Leben zweifeln, einen halben Monat lang in der Grube kriechen und schließlich landen; Follow-up, um den Leistungstest anderer Modelle zu aktualisieren