darknet之VSCode单步调试

本文详细介绍使用Darknet进行目标检测训练的配置方法与具体流程,包括launch.json文件的设置,Makefile中CFLAGS参数的调整,以及从darknet.c到train_network_datum的完整调用过程。

1. How

  • 参考这篇博客
  • launch.json内容如下
    • {
      // Use IntelliSense to learn about possible attributes.
      // Hover to view descriptions of existing attributes.
      // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
      "version": "0.2.0",
      "configurations": [
          {
              "name": "region",
              "type": "cppdbg",
              "request": "launch",
              "program": "${workspaceFolder}/darknet",
              "args": ["detector", "train", "${workspaceFolder}/data/candle.data", "${workspaceFolder}/cfg/candle11-tr.cfg", "${workspaceFolder}/yolov2-tiny.conv.11"],
              "stopAtEntry": false,
              "cwd": "${workspaceFolder}",
              "environment": [],
              "externalConsole": false,
              "MIMode": "gdb",
              "preLaunchTask": "make",
              "setupCommands": [
                  {
                      "description": "Enable pretty-printing for gdb",
                      "text": "-enable-pretty-printing",
                      "ignoreFailures": true
                  }
              ]
          }
      ]}
      
  • 修改Makefile,在CFLAGS最后加-g

2. 训练流程

  • darknet.c调用detector.c的run_detector
  • run_detector调用train_detector
  • train_detector调用parser.c的parse_network_cfg,实际调用parse_network_cfg_custom
    • parse_network_cfg_custom调用解析网络层的函数,以region层为例,调用parse_region
    • parse_region调用region_layer.c的make_region_layer,并设置anchor
  • train_detector调用data.c的load_data
  • train_detector调用network.c的train_network_waitkey(只用1个GPU时)
    • train_network_waitkey调用train_network_datum
    • train_network_datum调用forward_network和backward_network
  • train_detector调用validate_detector_map(需要的时候)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值