zjhellofss / KuiperInfer

校招、秋招、春招、实习好项目!带你从零实现一个高性能的深度学习推理库,支持大模型 llama2 、Unet、Yolov5、Resnet等模型的推理。Implement a high-performance deep learning inference library step by step
MIT License
2.59k stars 295 forks source link

关于yolo_detect层实现中的疑问 #27

Closed zpye closed 1 year ago

zpye commented 1 year ago

1. https://github.com/zjhellofss/KuiperInfer/blob/ed72d28a3904bdbd2df470706f5b83eeafd0bc54/source/layer/details/yolo_detect.cpp#L244

这一行代码中创建Tensor但没有变量保存返回值,是否可以去掉?

2. https://github.com/zjhellofss/KuiperInfer/blob/ed72d28a3904bdbd2df470706f5b83eeafd0bc54/source/layer/details/yolo_detect.cpp#L88

https://github.com/zjhellofss/KuiperInfer/blob/ed72d28a3904bdbd2df470706f5b83eeafd0bc54/source/layer/details/yolo_detect.cpp#L139

这里外层循环和内层循环都在遍历stages,感觉上有点不合理。 个人的一个看法是,外层的stages表示3种不同的特征图尺寸(20x20,40x40,80x80),内层的3代表anchor的3种长宽比,二者是互相独立的。不知道这种理解对不对?

zjhellofss commented 1 year ago
  1. 可以去掉, 如果可以的话, 大佬也可以帮忙提个pr
  2. 你理解应该是对的, 主要是由于这部分因为我从yolo.py那边生搬硬套的, 有些地方可能会有些问题, 如果大佬能帮忙改动下逻辑, 让代码看起来更加准确就好了.
zjhellofss commented 1 year ago

@zpye 我可能把stage的数量和锚框的尺寸数量混在一起了, 因为在yolov5下默认两个都是3.