Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 11241|Répondre: 0

Introduction au cadre Darknet

[Copié le lien]
Publié sur 30/01/2019 12:51:44 | | | |
Pour la rééducation des systèmes de bout en bout pour les expressions faciales


Annexe 1 :

Analyse du code source du cadre d’apprentissage profond Darknet : commentaires chinois détaillés, couvrant les principes du cadre et l’analyse syntaxique de l’implémentation

https://github.com/hgpvision/darknet

darknet est un framework d’apprentissage profond open source relativement léger basé entièrement sur C et CUDA, ses principales fonctionnalités sont faciles à installer, sans dépendances (OpenCV peut être utilisé), très portable, et prend en charge à la fois les méthodes de calcul CPU et GPU.



Comparé à TensorFlow, le darknet n’est pas très puissant, mais c’est aussi un avantage du darknet :

  • Le darknet est entièrement implémenté en langage C, sans aucune dépendance, bien sûr on peut utiliser OpenCV, mais seulement pour afficher des images, pour une meilleure visualisation ;
  • Le darknet supporte le CPU (donc peu importe si vous n’avez pas de GPU) et le GPU (CUDA/cuDNN, bien sûr il vaut mieux utiliser le GPU) ;
  • C’est précisément parce qu’il est relativement léger et ne dispose pas d’une API puissante comme TensorFlow, donc je pense qu’il offre une autre forme de flexibilité, adaptée à l’étude de la base et qui peut être améliorée et étendue à partir de bas plus facilement.
  • Il existe des similitudes entre la mise en œuvre du darknet et celle du caffè, et je connais bien le darknet et je pense qu’il est utile de commencer avec le caffè.





Annexe 2 :

Auteur : Utilisateur Zhihu
Lien:https://www.zhihu.com/question/51747665/answer/145607615
Source : Zhihu
Le droit d’auteur appartient à l’auteur. Pour les réimpressions commerciales, veuillez contacter l’auteur pour obtenir une autorisation, et pour les réimpressions non commerciales, veuillez indiquer la source.

Les trois définitions de structure les plus importantes dans le Darknet sont network_state, réseau et couche ; La nouvelle version network_state a été intégrée au réseau.

Le code peut d’abord ignorer la partie GPU, et différents types de couches réseau définissent les règles d’exécution de ce type via les pointeurs de fonction vers l’arrière et les mises à jour dans la couche. Par exemple, il existe trois méthodes pour les couches connectées, comme forward_connected_layer backward_connected_layer update_connected_layer couche gru, etc. ;

Les opérations atomiques sont uniquement dans blas.c et gemm.c, les opérations réseau sont dans network.c, et les plus importantes sont train_network_datum, train_networks, train_network_batch et network_predict ;

train_network_datum est la float_pair utilisée pour les données d’entrée, c’est-à-dire les paires float *x et float *y ;

train_networks est entraîné en network_kernel.cu en mode threading concurrent, et le paramètre est data ;

Un point, le darknet est monothread en mode CPU, et en mode graphique multi-GPU, il supporte train_networks l’exécution multi-cartes, et c’est aussi l’entrée pour transformer l’opération multi-hôte darknet de distribution, où l’on peut voir la fusion et l’échelle des données de poids entraînés.

train_network_datum Exécuter forward_network { layer forward network } backward_network { layer layer reverse network }, et exécuter une update_network ( ,,, débit, momentum, décroissance sous le nombre de fois (*net.seen %subdivisions) est satisfait ;

Pour le traitement du profil réseau défini par l’utilisateur en parse_network_cfg, les résultats de l’entraînement sont lus à travers load_weights

C’est la colonne vertébrale.

Si vous devez traiter avec des sources de données ayant des besoins spécifiques, vous devez vous référer à data.c pour commencer.

Pour le profil CFG, l’ajustement de la mise au point (bien sûr, tous les paramètres sont importants, il peut parfois devoir être ajusté), et le paramètre global de la mise au point pendant l’entraînement : la quantité de mouvement de désintégration learning_rate Ces trois sont liés à la vitesse de convergence. La politique correspond à la politique des poids, les sorts de lots d’entrées (et subdivisions associées) sont liés à la dimension de débit des données, et la dernière version semble comporter des corrections ici dans les sorties.







Précédent:Tutoriel simple de mockjs
Prochain:.net core FileProvider lit les fichiers de répertoires
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com