请问一下作者,您训练一个epoch要多久,我四张A6000在coco一轮要一天!!!!
1324039468 opened this issue · comments
我们在8 * 3090的机器上用COCO数据集训练cfg/dy-yolov7-step1.yaml,单epoch预计15分钟左右。
您可以检查一下以下几点
- 数据量是否远超COCO数据集(COCO为100k级别)
- 是否机器在并行执行多个程序
- 是否是数据集读取过慢
好的 已解决 不过在step2 为什么第二个epoch 到 Epoch gpu_mem diff score.0 score.1 total labels img_size
0/1 14.3G-0.0003649 0.5656 0.4344 0.1478 16 640: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6467/6467 [25:07<00:00, 4.29it/s]
Class Images Labels P R mAP@.5 mAP@.5:.95: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████| 548/548 [00:39<00:00, 13.98it/s]
all 548 38759 2e-05 0.00112 5.04e-06 2.9e-06
Epoch gpu_mem diff score.0 score.1 total labels img_size
1/1 6.64G-0.0003061 0.5992 0.4008 0.1545 22 640: 27%|██████████████████████████████▏ | 1716/6467 [07:33<12:37, 6.27it/s] 就不动了 尝试了两次都是这样
1/1 6.64G-0.0003061 0.5992 0.4008 0.1545 22 640: 27%|██████████████████████████████▏ | 1716/6467 [07:33<12:37, 6.27it/s] 到这个时候就卡住不动了
我们在使用时未遇到过类似的问题,建议您可以尝试使用COCO数据集训练以验证是否是数据的问题,或再仔细看一下dataset, dataloader以及机器是否有其他问题。
step2只训练router,其参数量非常少,故无需很多的训练
好的 非常感谢您 那最终用于验证测试的weight 是用的哪个结果?
我这边训练得到的step2的map0.5 要比step1的map0.5低很多
step2训练完后,使用step2得到的模型统计获得动态阈值,https://github.com/VDIGPKU/DynamicDet#getting-the-dynamic-thresholds-for-variable-speed-inference
之后利用所需阈值测试step2得到的模型,https://github.com/VDIGPKU/DynamicDet#testing
好的 非常感谢您的耐心回复 谢谢!
step2训练完后,使用step2得到的模型统计获得动态阈值,https://github.com/VDIGPKU/DynamicDet#getting-the-dynamic-thresholds-for-variable-speed-inference
之后利用所需阈值测试step2得到的模型,https://github.com/VDIGPKU/DynamicDet#testing
请问使用step2得到的模型统计获得动态阈值其中的weight 参数是step2后的pt文件还是step1的?
step2训练完后,使用step2得到的模型统计获得动态阈值,https://github.com/VDIGPKU/DynamicDet#getting-the-dynamic-thresholds-for-variable-speed-inference
之后利用所需阈值测试step2得到的模型,https://github.com/VDIGPKU/DynamicDet#testing请问使用step2得到的模型统计获得动态阈值其中的weight 参数是step2后的pt文件还是step1的?
step2的
是随机从这么多输出阈值里选择一个 传入test里面吗?
旨在实现动态推理,在测试的时候通过划定不同的难易比例,获取不同的速度与精度的trade-offs
旨在实现动态推理,在测试的时候通过划定不同的难易比例,获取不同的速度与精度的trade-offs
好的,非常感谢您的回复,我可以理解成只是提供一个阈值参考,然后通过实验看哪一个阈值对应的速度和精度比较好吗?
旨在实现动态推理,在测试的时候通过划定不同的难易比例,获取不同的速度与精度的trade-offs
好的,非常感谢您的回复,我可以理解成只是提供一个阈值参考,然后通过实验看哪一个阈值对应的速度和精度比较好吗?
可以的,阈值越高,hard样本划分的比例越多,整体精度会更高,但速度更慢
非常感谢您的工作,我已经在我的数据集上完成了训练,我想只用step1做训练 直接舍弃step2 之训练step1 然后用step1的结果做验证测试 那么在test的时候 dy阈值参数 还有意义吗?
那没有意义,您可以直接使用step1出的权重进行测试,并将下列代码
Lines 244 to 245 in 4dbb9b2
改成need_second = True; need_first_head = False
好的 非常感谢您的指导 祝您一些顺利!
这样的话 还是正常对step1训练就行了 step2 以及Getting the dynamic thresholds for variable-speed inference 都不需要了吧?
是的
那没有意义,您可以直接使用step1出的权重进行测试,并将下列代码
Lines 244 to 245 in 4dbb9b2
改成need_second = True; need_first_head = False
直接使用step1的权重的话,这段代码是只有在测试的时候改,训练的时候不用改吗?我在训练的时候改了这段就报错了:
还有关于上面这段:
旨在实现动态推理,在测试的时候通过划定不同的难易比例,获取不同的速度与精度的trade-offs
好的,非常感谢您的回复,我可以理解成只是提供一个阈值参考,然后通过实验看哪一个阈值对应的速度和精度比较好吗?
可以的,阈值越高,hard样本划分的比例越多,整体精度会更高,但速度更慢
为什么我训练出来的结果阈值设为0的时候的精度反而比为1的时候更高(MAP分别为0.571和0.374)?我用的是DOTA卫星数据集里的一部分数据,训练集有500张1024*1024的图片,val有100张图片,有可能是数据集太小的问题吗?