方法等价于U-RTDETR源码解析
1、核心模块如下
2、首先打开models
3、查看engine/model
1、查看里面的_new方法(生成网络)
2、查看里面的_load方法(已经有网络,将其加载进来)
3、查看里面的_smart_load方法(智能化加载)
1、对应于yolo/model中的位置
2、以上述yolo/model/task_map为例
3、tasks/DetectionModel
4、tasks/DetectionModel/__init__方法中有parse_model(解析网络配置文件.yaml)
5、parse_model(解析网络配置文件.yaml)
4、神经网络训练流程:
1、定义网络(加载网络)
2、加载数据与真值label/GT(dataset、dataloader)
3、将数据投喂到网络中,计算预测值pred
4、计算loss(pred与GT的差异)
5、反向传播BP,更新参数
6、迭代3-5步骤
1、定义网络(加载网络)
如上述的3、查看engine/model步骤
2、加载数据与真值label/GT(dataset、dataloader)
1、engine/model/train中有如下位置
2、点击BaseTrainer
3、找到BaseTrainer里面的train方法
4、train方法里调用_do_train(点击)
5、_do_train里面调用_setup_train(初始化)(点击)
6、注意:点击get_dataloader之后,会跳转到基类的位置,但其实我们要找的是子类的实现类
7、找到get_dataloader
8、
9、
10、
11、
12、
3、将数据投喂到网络中,计算预测值pred
4、计算loss(pred与GT的差异)
将步骤2加载的数据投喂到网络中,计算预测值pred;将pred与GT比较,在前向传播中计算loss
1、
2、
3、
5、反向传播BP,更新参数
6、迭代3-5步骤
5、各个部分关系解释
核心模块
model
engine
nn