Umgebungsaufbau
Vorwort
Um die Reise des vertieften Lernens zu beginnen, müssen wir zunächst bestimmen, wo der Alchemieofen platziert ist. Es versteht sich, dass die herkömmlichen Plattformkombinationen Folgendes umfassen:
- Sieg + Anakonda
- Sieg + WSL
- kostenlos + Anakonda
- kostenlos + Docker
Bei den oben genannten Methoden handelt es sich natürlich um weitere Kombinationsmethoden, die je nach Bedarf verwendet GPU/CPU
werden tensorflow/pytorch
.
1. Meine Plattform
Mein Computer ist 9300H+GTX1650
eine Kombination, GPU
obwohl es ein bisschen ist low
, aber es ist besser als nichts, lass uns damit auskommen, schließlich ist es mein eigenes Geld, es ist zu schade, es zu bekommen.
Nach einem Tag des Herumwälzens heute habe ich mich entschieden, den Weg zu wählen
win + wsl + docker
: Die Hauptüberlegungen sind wie folgt:
- Es gibt nur ein Notebook, egal ob es mit Dual-Systemen installiert ist oder installiert ist
Linux
, es wird mehr oder weniger die Verwendung anderer nachfolgender Arbeiten beeinträchtigen, und ich bin zu faul, es wegzuwerfen, weil ich befürchte, dass es zu einem Ziegelstein wird, wenn ich nicht aufpasse; wsl
Nicht stabil genug, es treten unerklärliche Fehler auf, z. B.pip3
keine Reaktion, nach einer Woche des Hin- und Herwerfens kann der Grund nicht gefunden werden, einfach aufgebenanaconda
Schaffen Sie eine Umgebung und beginnen Sie zu langsamdocker
Die Anwendung wird immer weiter verbreitet, insbesondere wenn es um die Bereitstellung geht. Daher ist es notwendig, die Verwendung zu erlernen, und Sie können mehrere Anwendungen erstellenimages
, waswsl
viel kostengünstiger ist. Auf der Grundlage des oben Gesagten wird beschlossen, die Kombinationsmethode
anzuwenden .win + wsl + docker
Zweitens, Konfiguration
1. wsl
wsl
Es gibt viele Online-Tutorials zur Installation und Deinstallation von. Hier sind die häufig verwendeten Funktionen: Der
wsl
Vorgang wird PowerShell
in ausgeführt, die Öffnungsmethode ist die Tastenkombination win + R
und dann geöffnet, cmd
um
WSL anzuzeigen
wsl --list
Die Ausgabe ist:
PS C:\Users\ASUS> wsl --list
适用于 Linux 的 Windows 子系统分发版:
Ubuntu-20.04 (默认)
Ubuntu-18.04
Ausloggen
wsl --unregister Ubuntu-18.04
2. GPU
Das ist eine große Sache. Ob Ihr Computer verwendet werden kann, GPU
hängt von diesem Schritt ab. wsl
Die Installation cuda
besteht aus zwei Hauptschritten :
Schritt 1:
Installieren Sie das Gerät lokal und laden Sie die wsl
dedizierte nvidia
Treibersoftware von der offiziellen Website herunter
wsl
Der Hauptinstallationsprozess in Schritt 2cuda-toolkit
ist:
sudo apt-key adv --fetch-keys http://mirrors.aliyun.com/nvidia-cuda/ubuntu2004/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://mirrors.aliyun.com/nvidia-cuda/ubuntu2004/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt-get update
sudo apt-get install -y cuda-toolkit-11-3
Wenn Sie während der Installation darauf stoßenNO_PUBKEY A4B469963BF863CC
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC
Nach Abschluss der Installation müssen Sie die Umgebungsvariablen konfigurieren .bashrc
und am Ende Folgendes anhängen:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64
Um festzustellen, ob die Installation abgeschlossen ist, können Sie nvcc -V
sie über überprüfen. Wenn die Installation normal verläuft, erhalten Sie die folgende Rückmeldung:
z@LAPTO:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:15:13_PDT_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0
Oder erstellen Sie eine samples
Prüfsumme:
cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes
Hinweis: Wenn apt-key
der Vorgang abnormal ist, können Sie pub
die Daten direkt kopieren Ctrl + c
, sie dann lokal speichern *.pub
und apt-key add <filename>
sie dann über hinzufügen.
3. Docker
Zugehörige Ressourceneinstellungen:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
nvidia-docker2
Installieren
sudo apt-get update
sudo apt-get install -y nvidia-docker2
Denken Sie daran, nach der Installation neu zu starten:
sudo service docker stop
sudo service docker start
Test nach der Installation:
sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Wenn die Installation erfolgreich ist, wird Folgendes angezeigt:
Abnormal
Nach dem Herunterfahren und Neustarten schlägt sie nvidia-docker
fehl run
und die Fehlermeldung lautet:
docker: Error response from daemon: Unknown runtime specified nvidia.
See 'docker run --help'.
:/etc/docker/daemon.json
Die Lösung besteht darin , die Datei zu ändern :
{
"registry-mirrors":[
"http://hub-mirror.c.163.com",
"https://reg-mirror.qiniu.com"],
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
3 Demo
laufen demo
:
python3 demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml --ckpt pv_rcnn_8369.pth --data_path 000001.bin
Die aufgetretenen Fehler sind:
2021-11-16 01:42:31,620 INFO -----------------Quick Demo of OpenPCDet-------------------------
2021-11-16 01:42:31,735 INFO Total number of samples: 1
/usr/local/lib/python3.6/dist-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2157.)
return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]
2021-11-16 01:42:41,023 INFO ==> Loading parameters from checkpoint pv_rcnn_8369.pth to CPU
2021-11-16 01:42:43,918 INFO ==> Done (loaded 367/367)
2021-11-16 01:42:44,093 INFO Visualized sample index: 1
Traceback (most recent call last):
File "demo.py", line 105, in <module>
main()
File "demo.py", line 93, in main
pred_dicts, _ = model.forward(data_dict)
File "/usr/local/lib/python3.6/dist-packages/pcdet/models/detectors/pv_rcnn.py", line 11, in forward
batch_dict = cur_module(batch_dict)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/pcdet/models/backbones_3d/spconv_backbone.py", line 147, in forward
x = self.conv_input(input_sp_tensor)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/spconv/modules.py", line 134, in forward
input = module(input)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/spconv/conv.py", line 181, in forward
use_hash=self.use_hash)
File "/usr/local/lib/python3.6/dist-packages/spconv/ops.py", line 95, in get_indice_pairs
int(use_hash))
ValueError: /root/spconv/src/spconv/spconv_ops.cc 87
unknown device type
Nicht gelöst, aufgeben
2.
pip install pyyaml==5.4.1