BICLab / SpikeYOLO

Offical implementation of "Integer-Valued Training and Spike-Driven Inference Spiking Neural Network for High-performance and Energy-efficient Object Detection" (ECCV2024 Best Paper Candidate / Oral)
https://arxiv.org/abs/2407.20708
GNU Affero General Public License v3.0
97 stars 4 forks source link

训练时每学习一张图片都打印一次输出? #5

Closed LZHhAG closed 5 days ago

LZHhAG commented 1 week ago

训练时每学习一张图片都打印一次输出,如何修改使其像验证集验证时那样,一整个数据集只显示一行输出,只有进度条变动

LZHhAG commented 1 week ago

多卡训练似乎有问题,但还没有找到解决方案

SamanthaZhang-stu commented 1 week ago

请问你的pytorch版本是多少呀,我在导入ultralytics包的时候总是报错与torch版本不兼容

XinhaoLuo666 commented 1 week ago

请问你的pytorch版本是多少呀,我在导入ultralytics包的时候总是报错与torch版本不兼容

我的torch版本是2.0.0

XinhaoLuo666 commented 1 week ago

多卡训练似乎有问题,但还没有找到解决方案

您好,多卡训练只需要把 model.train(data="coco.yaml",device=[0],epochs=100) 改为 model.train(data="coco.yaml",device=[0,1,2,3],epochs=100) 即可。另外我刚刚测试了一遍,在我这边训练时确实只有一行输出,进度条变动。您那边每行都会有新的输出或许是IDLE存在bug?

LZHhAG commented 1 week ago

多卡训练似乎有问题,但还没有找到解决方案

您好,多卡训练只需要把 model.train(data="coco.yaml",device=[0],epochs=100) 改为 model.train(data="coco.yaml",device=[0,1,2,3],epochs=100) 即可。另外我刚刚测试了一遍,在我这边训练时确实只有一行输出,进度条变动。您那边每行都会有新的输出或许是IDLE存在bug? 您好,我确实是这样做的,我的conda设置的python版本是3.9,torch版本也按照您的建议设置了2.0.0,但依旧无法顺利进行多卡训练,IDLE我也进行了配置,在配环境的时候按照您给的requirements.txt进行配置,但缺少torchinfo spikingjelly timm einops四个包,我用pip直接进行了安装,不知道是不是这个版本冲突引起的问题。另外我使用最新的2.4.1的pytorch可以进行多卡训练,但是会发生“每学习一张图片都打印一次输出”的bug,同时,这时的多卡训练每张卡的显存使用量是:单卡训练显存使用量/显卡数量,也就是说并没有加快训练的速度,不太清楚这是什么原因。 QQ图片20241010205334

XinhaoLuo666 commented 1 week ago

多卡训练似乎有问题,但还没有找到解决方案

您好,多卡训练只需要把 model.train(data="coco.yaml",device=[0],epochs=100) 改为 model.train(data="coco.yaml",device=[0,1,2,3],epochs=100) 即可。另外我刚刚测试了一遍,在我这边训练时确实只有一行输出,进度条变动。您那边每行都会有新的输出或许是IDLE存在bug? 您好,我确实是这样做的,我的conda设置的python版本是3.9,torch版本也按照您的建议设置了2.0.0,但依旧无法顺利进行多卡训练,IDLE我也进行了配置,在配环境的时候按照您给的requirements.txt进行配置,但缺少torchinfo spikingjelly timm einops四个包,我用pip直接进行了安装,不知道是不是这个版本冲突引起的问题。另外我使用最新的2.4.1的pytorch可以进行多卡训练,但是会发生“每学习一张图片都打印一次输出”的bug,同时,这时的多卡训练每张卡的显存使用量是:单卡训练显存使用量/显卡数量,也就是说并没有加快训练的速度,不太清楚这是什么原因。 QQ图片20241010205334

您或许可以参考我们最新提供的environment.yaml 文件再核对一下安装包版本?另外,多卡训练每张卡的显存确实是:单卡训练显存使用量/显卡数量。如果您想提高显存占用,请在default.yaml中调高batch。这个batch是多卡的全部batch_size而不是单张卡的

LZHhAG commented 5 days ago

多卡训练似乎有问题,但还没有找到解决方案

您好,多卡训练只需要把 model.train(data="coco.yaml",device=[0],epochs=100) 改为 model.train(data="coco.yaml",device=[0,1,2,3],epochs=100) 即可。另外我刚刚测试了一遍,在我这边训练时确实只有一行输出,进度条变动。您那边每行都会有新的输出或许是IDLE存在bug? 您好,我确实是这样做的,我的conda设置的python版本是3.9,torch版本也按照您的建议设置了2.0.0,但依旧无法顺利进行多卡训练,IDLE我也进行了配置,在配环境的时候按照您给的requirements.txt进行配置,但缺少torchinfo spikingjelly timm einops四个包,我用pip直接进行了安装,不知道是不是这个版本冲突引起的问题。另外我使用最新的2.4.1的pytorch可以进行多卡训练,但是会发生“每学习一张图片都打印一次输出”的bug,同时,这时的多卡训练每张卡的显存使用量是:单卡训练显存使用量/显卡数量,也就是说并没有加快训练的速度,不太清楚这是什么原因。 QQ图片20241010205334

您或许可以参考我们最新提供的environment.yaml 文件再核对一下安装包版本?另外,多卡训练每张卡的显存确实是:单卡训练显存使用量/显卡数量。如果您想提高显存占用,请在default.yaml中调高batch。这个batch是多卡的全部batch_size而不是单张卡的 非常感谢您的回复,已经修改好了,谢谢