Peterisfar / YOLOV3

yolov3 by pytorch
MIT License
195 stars 53 forks source link

感谢您的代码。关于训练loss变为NAN #26

Closed ww-zwj closed 4 years ago

ww-zwj commented 4 years ago

我才用多GPU训练时,经过1到2个epoch后变为了NAN,请问您是如何解决的

Peterisfar commented 4 years ago

我才用多GPU训练时,经过1到2个epoch后变为了NAN,请问您是如何解决的

没有遇到过这个问题,也没有人反应过存在这个问题,是否你错误注释了代码?比如把每个epoch的梯度没有清零,造成梯度爆炸?仔细检查一下代码吧,原始的应该没什么问题

Peterisfar commented 4 years ago

我才用多GPU训练时,经过1到2个epoch后变为了NAN,请问您是如何解决的

另外,这个代码目前只支持单gpu训练

ww-zwj commented 4 years ago

感谢作者的回复,我之前没有使用ImagenNet上的预训练模型,所以收敛比较慢,随时会有梯度爆炸。这个是可以是可以用上多卡的,您可以使用torch.nn.DataParallel直接改为多卡,我在4块2080ti上进行了实验,骨干网络Mob-v2, batch为32。

Peterisfar commented 4 years ago

感谢作者的回复,我之前没有使用ImagenNet上的预训练模型,所以收敛比较慢,随时会有梯度爆炸。这个是可以是可以用上多卡的,您可以使用torch.nn.DataParallel直接改为多卡,我在4块2080ti上进行了实验,骨干网络Mob-v2, batch为32。

可以,硬件限制所以没有试过多gpu,但是若使用多gpu代码中batchnorm层需要进行处理