[PYTHON] Verwenden Sie DeepLabCut

Ich denke, der Engpass von DeepLabCut ist, dass es ziemlich schwierig ist, eine Umgebung aufzubauen. Ich war auch süchtig nach dem Sumpf. Erklärung des Github-Repositorys ist ziemlich umfangreich, und ich fand, dass japanische Artikel ausführlich erklärt werden. Ich werde. Ich habe mich jedoch nur mit diesen beschäftigt, also habe ich die Punkte zusammengefasst.

Für wen ist das

Fazit

Die optimale Lösung hängt von der Serverumgebung ab, die Sie verwenden können, und davon, ob Sie über eine GUI-Umgebung verfügen. Wenn weder CUDA- noch NVIDIA-Treiber enthalten sind, wird dieser Artikel nicht behandelt. Lesen Sie daher bitte einen anderen Artikel. Es tut mir Leid.

CUDA Sie können die Version von CUDA mit dem Befehl nvidia-smi überprüfen. CUDA10, CUDA9 → Möglich CUDA8 → Unmöglich. Wechseln Sie zu Verwendung von Google Colab.

** GUI-Umgebung ** CUDA9,10 × GUI-Umgebung → Sie können auch beschriften und lernen. Nur CUDA9,10 → Beschriften und Lernen wird in verschiedenen Umgebungen durchgeführt.

** In meinem Fall ** Es gibt zwei GPU-Umgebungen, die ich verwenden kann, eine mit einer GUI-Umgebung außer CUDA 8.0 und die andere nur mit einer CLI und CUDA 9.0. Beide waren gemeinsam genutzte Server, und der nvidia-Treiber konnte nicht aktualisiert werden. Die Beschriftung erfolgte unter Windows.

Im Folgenden wird davon ausgegangen, dass es sich um CUDA 9.0 oder höher handelt.

Wenn Sie eine Desktop-Umgebung haben

Sie können dies sofort tun, indem Sie mit Anaconda eine Umgebung gemäß DeepLabCut Official Description erstellen. Einfach.

Es wird jedoch davon ausgegangen, dass Sie standardmäßig über CUDA10 verfügen. Im Fall von CUDA9 Einstellungsdatei. Yaml ) Muss umgeschrieben werden. Sie müssen die Version von Python, Tensorflow-GPU, Cudnn gemäß CUDA auswählen, während Sie hier betrachten. Informationen zu Tensorflow-GPU und Cudnn finden Sie unter Anaconda Cloud, um festzustellen, ob es eine gewünschte Version gibt. Wenn Sie ein Paket angeben, das nicht in Anaconda Cloud veröffentlicht ist, wird der Fehler "Paket nicht gefunden auflösen" angezeigt. Es ist keine Abhängigkeit, es ist nur so, dass die angegebene Version nicht gefunden werden kann.

Im Fall von CUDA9 denke ich, dass es funktionieren wird, wenn cudnn = 7.3.1 usw. Ich habe das Gefühl, dass der Tensorfluss in diesem Fall zwischen 1,5 und 1,12 liegen kann. Python sollte 3.6 sein. Schließlich,

python


dependencies:
   - python=3.6
   - tensorflow-gpu==1.12.0
   - cudnn=7

Wenn Sie dies tun, sollte es funktionieren. Nachdem diese Bearbeitung abgeschlossen ist, können Sie zur Erklärung der Kopffamilie zurückkehren. Die Fortsetzung des Artikels ist irrelevant.

Wenn Sie keine Desktop-Umgebung haben

Obwohl es sich um eine Methode handelt, die in anderen Artikeln verwendet wird, ist es am einfachsten, eine Beschriftung auf einer CPU mit einer GUI-Umgebung durchzuführen und in einer GPU-Umgebung zu lernen. (Wenn Sie Ihr Bestes geben, können Sie das SSH-Ziel DeepLabCut möglicherweise lokal mit der GUI betreiben, aber ich konnte es nicht selbst tun. Wenn jemand weiß, wie es geht, lassen Sie es mich bitte wissen. M (_ _) m) Es ist ein wenig nervig, aber lassen Sie uns eine Beschriftungsumgebung mit einer geeigneten CPU und einer Lernumgebung auf dem GPU-Server erstellen.

Die CPU-Beschriftungsumgebung sollte der offiziellen Beschreibung und der CPU folgen, wenn Sie zwischen GPU und CPU wählen Einfach richtig auswählen.

Wenn Sie eine Lernumgebung für den Server erstellen, ist dies ein wenig problematisch.

This base container is mainly useful for server deployment for training networks and video analysis (i.e. you can move this to your server, University Cluster, AWS, etc) as it assumes you have no display.

Und wie geschrieben ist es besser, den Docker-Container zu verwenden.

Hier wird was gebraucht

Zusammenfassung

Ich habe viel Zeit mit diesem Setup verbracht ... Möge Ihre Zeit gespart werden.

Es scheint, dass zum Zeitpunkt des Schreibens des Originalpapiers Tensorflow-gpu = 1.0.0 verwendet wurde, aber als ich mir Anaconda Cloud ansah, wurde es nicht veröffentlicht.

Warum CUDA8 unmöglich ist

Weil es kein entsprechendes cudnn gibt. Wenn ich mir die Korrespondenztabelle ansehe, benötigt cudnn 5.1 oder 6, aber wenn ich mir Anaconda Cloud anschaue, wird es nicht veröffentlicht. Es gab jedoch cudnn 7.1.3, das mit CUDA 8.0 verwendet werden kann. Daher funktioniert die Angabe dieser Version möglicherweise. Außerdem ist CUDA8.0 verdächtig, und soweit die Korrespondenztabelle angezeigt wird, funktioniert der Tensorflow nur bis 1.4.0. Wenn es sich um Linux handelt, ist 1.4.1 ab 2020/7 für die Öffentlichkeit zugänglich, sodass Sie es möglicherweise verwenden können. Als ich zu tensorflow-gpu == 1.4.1 gewechselt bin, ist ein Paketkonfliktfehler aufgetreten. Vielleicht ist es unmöglich, alles auf einmal mit der Anaconda-Konfigurationsdatei zu installieren. Daher denke ich, dass es vorerst notwendig ist, nur eine virtuelle Umgebung zu erstellen und eine nach der anderen einzufügen, die keine Versionskonflikte verursacht. Es scheint, dass wenn Sie pipenv und Poetry gut verwenden, es die Abhängigkeit lösen wird, aber ich habe es bisher nicht bestätigt. Möchten Sie es bisher lokal ausführen? Deshalb denke ich, dass es besser ist, Colab zu verwenden.

Was ist mit Deeplabcut hängen geblieben?

Wie in diesem Artikel gezeigt, müssen Sie beim Starten der Eingabeaufforderung über Administratorrechte verfügen. Sie können mit der rechten Maustaste auswählen. Andernfalls kann Projekt verwalten keine Projekte erstellen. Wenn Sie DeepLabCut verwenden,

deeplabcut.extract_frames(config_path)

Wenn Sie es jedoch zu diesem Zeitpunkt nicht mit Administratorrechten starten, tritt das Phänomen auf, dass das Image nicht in label_data enthalten ist.

Bonus

Dies ist ein Punkt, den ich beim Erstellen der Umgebung um DeepLabCut zum Debuggen gebracht habe. Vielleicht ist es nützlich?

Wie benutzt man nvidia-docker?

Bis jetzt dachte ich, dass ich es mit Docker-Lauf angeben würde --runtime = nvidia, Auf dem Server, den ich jetzt verwende, funktioniert die Eingabe eines Befehls mit nvidia-docker run einwandfrei.

Wenn das Zeichen von Jupiter Lab nicht auf alle Fälle geht

Verwenden Sie das jupyter Notebook-Passwort, um das Passwort festzulegen. Wenn Sie das Passwort eingeben und es nicht funktioniert, stimmt etwas nicht.

Recommended Posts

Verwenden Sie DeepLabCut
Verwenden Sie pycscope
Verwenden Sie Sammlungen
Verwenden Sie: Django-MySQL
Verwenden Sie Pylements.rb
Verwenden Sie Numpy
Verwenden Sie Pandas-Ply
Verwenden Sie GitPython
Verwenden Sie Miniconda
Verwenden Sie Invariant TSC
Warum Linux verwenden?
[C] Verwenden Sie qsort ()
Verwenden wir pytube
Verwenden Sie die JIRA-API
Verwenden Sie schwache Referenzen
Verwenden Sie die django-debug-Symbolleiste nicht lokal
Verwenden Sie die Kombinationsoptimierung