Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 11241|Antwort: 0

Einführung in das Darknet-Framework

[Link kopieren]
Veröffentlicht am 30.01.2019 12:51:44 | | | |
Zur Umschulung von End-to-End-Systemen für Gesichtsausdrücke


Anhang 1:

Darknet Deep Learning Framework Quellcode-Analyse: Detaillierter chinesischer Kommentar, der Framework-Prinzipien und Implementierungssyntaxanalyse behandelt

https://github.com/hgpvision/darknet

Darknet ist ein relativ leichtes Open-Source-Deep-Learning-Framework, das vollständig auf C und CUDA basiert; seine Hauptmerkmale sind einfach zu installieren, keine Abhängigkeiten (OpenCV kann verwendet werden), sehr portabel und unterstützt sowohl CPU- als auch GPU-Berechnungsmethoden.



Im Vergleich zu TensorFlow ist Darknet nicht so mächtig, aber das ist auch ein Vorteil von Darknet:

  • Darknet ist vollständig in der C-Sprache implementiert, ohne jegliche Abhängigkeiten, natürlich kann man OpenCV verwenden, aber nur zur Darstellung von Bildern, für eine bessere Visualisierung;
  • Darknet unterstützt CPU (es spielt also keine Rolle, wenn du keine GPU hast) und GPU (CUDA/cuDNN, natürlich ist es besser, GPU zu verwenden);
  • Das liegt gerade daran, dass es relativ leicht ist und keine leistungsstarke API wie TensorFlow besitzt, weshalb ich denke, dass es eine weitere Flexibilität bietet, die sich eignet, um das Zugrunde zu studieren und bequemer von unten aus verbessert und erweitert werden kann.
  • Es gibt Ähnlichkeiten zwischen der Umsetzung von Darknet und der Umsetzung von Caffe, und ich kenne mich mit Darknet aus und halte es für hilfreich, mit Caffe zu beginnen.





Anhang 2:

Autor: Zhihu User
Verbinden:https://www.zhihu.com/question/51747665/answer/145607615
Quelle: Zhihu
Das Urheberrecht liegt beim Autor. Für kommerzielle Nachdrucke wenden Sie sich bitte an den Autor um eine Genehmigung, und für nicht-kommerzielle Nachdrucke bitte die Quelle angeben.

Die drei wichtigsten Strukturdefinitionen im Darknet sind network_state, Netzwerk und Schicht; Die neue Version network_state wurde in das Netzwerk integriert.

Der Code kann zuerst den GPU-Teil ignorieren, und verschiedene Netzwerkschichten definieren die Ausführungsregeln dieses Typs über die Funktionszeiger rückwärts und aktualisieren in der Schicht. Zum Beispiel gibt es drei Methoden für zusammenhängende Schichten, wie forward_connected_layer backward_connected_layer update_connected_layer Gru-Schicht usw.;

Atomare Operationen sind nur in blas.c und gemm.c, Netzwerkoperationen in network.c, und die wichtigsten sind train_network_datum, train_networks, train_network_batch und network_predict;

train_network_datum ist das float_pair, das für Eingabedaten verwendet wird, also für Float *x und float *y Paare;

train_networks wird in network_kernel.cu im Concurrent Threading-Modus trainiert, und der Parameter ist Daten;

Zum einen ist das Darknet im CPU-Modus singlethreaded, und im Multi-GPU-Grafikmodus unterstützt es train_networks Multi-Card-Running, und dies ist auch der Eingang zur Transformation des Multi-Host-Darknet-Operations, bei dem man die trainierten Gewichtsdaten zusammenführen und skalieren sieht.

train_network_datum Führe forward_network { schichtweise vorwärts vorwärts Netzwerk } backward_network { schichtweise umgekehrtes Netzwerk } aus und führe ein update_network aus ( ,,, Rate, Impuls, Abkling unter der Anzahl der Male (*net.gesehen %) ist erfüllt;

Für die Verarbeitung benutzerdefinierter Netzwerkprofile in parse_network_cfg werden die Trainingsergebnisse load_weights durchgelesen

Das ist das Rückgrat.

Wenn Sie mit Datenquellen mit besonderen Bedürfnissen zu tun haben, sollten Sie zum Einstieg in data.c zurückgreifen.

Für das CFG-Profil sind die Fokusanpassung (natürlich sind alle Parameter wichtig und müssen gegebenenfalls angepasst werden) und der globale Parameter des Fokus während des Trainings: Abfallimpuls learning_rate Diese drei stehen in Zusammenhang mit der Konvergenzgeschwindigkeit. Policy ist die Weights-Policy, Input-Batch (und verwandte Unterteilungen) Ausgaben stehen in Zusammenhang mit der Datendurchsatzdimension, und die neueste Version scheint hier Korrekturen in den Outputs zu enthalten.







Vorhergehend:mockjs einfaches Tutorial
Nächster:.net core FileProvider liest Verzeichnisdateien
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com