{"id":13435770,"url":"https://github.com/hgpvision/darknet","last_synced_at":"2025-03-18T11:32:12.486Z","repository":{"id":45833531,"uuid":"97708527","full_name":"hgpvision/darknet","owner":"hgpvision","description":"darknet深度学习框架源码分析：详细中文注释，涵盖框架原理与实现语法分析","archived":false,"fork":false,"pushed_at":"2018-11-07T06:11:56.000Z","size":2152,"stargazers_count":1603,"open_issues_count":32,"forks_count":487,"subscribers_count":107,"default_branch":"master","last_synced_at":"2024-10-27T18:59:07.774Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hgpvision.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-19T11:25:44.000Z","updated_at":"2024-10-14T11:48:14.000Z","dependencies_parsed_at":"2022-09-04T08:10:49.749Z","dependency_job_id":null,"html_url":"https://github.com/hgpvision/darknet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgpvision%2Fdarknet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgpvision%2Fdarknet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgpvision%2Fdarknet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hgpvision%2Fdarknet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hgpvision","download_url":"https://codeload.github.com/hgpvision/darknet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244211159,"owners_count":20416590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:00:38.971Z","updated_at":"2025-03-18T11:32:07.476Z","avatar_url":"https://github.com/hgpvision.png","language":"C","readme":"# darknet\ndarknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架，其主要特点就是容易安装，没有任何依赖项（OpenCV都可以不用），移植性非常好，支持CPU与GPU两种计算方式。\n\n更多信息（包括安装、使用）可以参考：[Darknet: Open Source Neural Networks in C](https://pjreddie.com/darknet/)\n\n# 为什么选择darknet？\n\n相比于TensorFlow来说，darknet并没有那么强大，但这也成了darknet的优势：\n\n1. darknet完全由C语言实现，没有任何依赖项，当然可以使用OpenCV，但只是用其来显示图片、为了更好的可视化；\n\n2. darknet支持CPU（所以没有GPU也不用紧的）与GPU（CUDA/cuDNN，使用GPU当然更块更好了）；\n\n3. 正是因为其较为轻型，没有像TensorFlow那般强大的API，所以给我的感觉就是有另一种味道的灵活性，适合用来研究底层，可以更为方便的从底层对其进行改进与扩展；\n\n4. darknet的实现与caffe的实现存在相似的地方，熟悉了darknet，相信对上手caffe有帮助；\n\n# 本项目目的与状态\n\n目的很简单，研究darknet底层，窥探深度学习框架原理与具体实现，同时巩固C语言编程（所以注释中不单有很多的框架原理/逻辑分析，也有很多语法分析）。目前只完成部分代码（主要是卷积神经网络）的分析，其注释非常详细（可能很多人会觉得罗嗦了：)，那就强忍着吧～），未来会不定期的更新!（忙ing，什么时候会再更呢？）\n\n很希望有相同兴趣的人加入我，一起研究（若有兴趣，欢迎给我发邮件～～）！\n\n# 小小声明\n\n注释中有些地方提及了参考什么什么的，这些多半是指我所作的图表+文字用来帮助理解代码的笔记，原谅我这些笔记还躺在我的电脑里，并没有上传，但不用紧，因为注释真的真的很详细，基本上不用图表也说明清楚了～～\n\n大部分的代码都是本人个人完成的（lonely...），所以难免会有理解错误的地方（可能还不少，害怕ing...），还请多多包涵，若发现与您理解相左的地方，欢迎发邮件给我～～\n\n# 两三点小说明\n\n1. src文件夹中凡是.cu文件，都被我改为.c结尾了（为了一点点方便～），替换之前的文件全被我放在了src/cu文件夹中（没啥用，可以随便删掉～）。如果你没用gpu的话，这没有任何影响，因为没有用gpu就不会用到nvcc编译；但是如果你用gpu的话，还得麻烦你将.c改回.cu，不然编译会出问题的（你可以看一下Makefile文件，.cu文件要用nvcc编译的，要改为.c那就通通用gcc编译了～～）\n\n2. 如果你也愿意解析代码，为其写注释，也可以pull requests给我，我来merge（注释风格如果能够保持一致就最好了～～）\n\n3. Contributors:\n    * [Goffic](https://github.com/Goffic)： 为rnn_layer.c添加了注释\n    * [LamHoCN](https://github.com/LamHoCN)： 修改了一些注释，并提供了一些yolo的应用代码（已push到extension分支中）\n\n# 疑惑求解\n\n1. 始终不明白softmax_layer层反向传播函数backward_softmax_layer()中为什么不用对softmax函数求导？\n\n2. region_layer层前向函数forward_region_layer()在求l.output过程中（也就是第一次使用activate_array函数），为什么只对x,y进行了logistic激活函数处理，而没有对w,h处理（也就是activate_array()函数的第二个参数为什么是2*l.w*l.h，而不是4*l.w*l.h）？还有，region_layer这一层没有训练参数吗？\n\n3. 另外，就是region_layer中cost和delta的计算了，感觉并没有弄懂？\n","funding_links":[],"categories":["C","Computer Vision"],"sub_categories":["Classification \u0026 Detection \u0026 Tracking"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhgpvision%2Fdarknet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhgpvision%2Fdarknet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhgpvision%2Fdarknet/lists"}