deeplabv3-plus-pytorch icon indicating copy to clipboard operation
deeplabv3-plus-pytorch copied to clipboard

请问训练时为什么会卡在第一个epoch不动呀?

Open misaka100001 opened this issue 1 year ago • 9 comments

我运行deeplabv3+的时候,训练一直卡在Epoch 1/200: 0%|不动弹了,用debug看了一下,发现是停在event_file_writer.py里面的data = self._queue.get(True, queue_wait_duration)这一行了,请问有大佬知道是什么原因吗?

misaka100001 avatar Oct 30 '23 14:10 misaka100001

去csdn上搜了一下,发现有一个跟我一样的问题,但是他使用的方法是用pip重新安装opencv_python,而我用这个方法无法解决问题

misaka100001 avatar Oct 30 '23 14:10 misaka100001

补充:等了一晚上后终于跑起来了,但是训练速度很慢,而且loss一直是nan

misaka100001 avatar Oct 31 '23 01:10 misaka100001

补充:等了一晚上后终于跑起来了,但是训练速度很慢,而且loss一直是nan

请问解决了loss是nan的问题了吗?如何解决的?

wakakkakak avatar Mar 11 '24 09:03 wakakkakak

我运行deeplabv3+的时候,训练一直卡在Epoch 1/200: 0%|不动弹了,用debug看了一下,发现是停在event_file_writer.py里面的data = self._queue.get(True, queue_wait_duration)这一行了,请问有大佬知道是什么原因吗?

我也是出现类似情况。使用多个GPU训练,在第一个epoch时候,花了很长时间,大概十几分钟。之后速度就快一些了。但是偶尔会报错:Some NCCL operations have failed or timed out. Due to the asynchronous nature of CUDA kernels, subsequent GPU operations might run on corrupted/incomplete data.

liuqinglong110 avatar Mar 18 '24 03:03 liuqinglong110

这个问题我已经解决了,不过忘了当初是怎么搞定的了。另外我建议不要放在多个GPU上训练,我之前放在多个GPU训练的效果比放在1个GPU上的低了1%,具体原因我也搞不明白

------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:09 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92)

我运行deeplabv3+的时候,训练一直卡在Epoch 1/200: 0%|不动弹了,用debug看了一下,发现是停在event_file_writer.py里面的data = self._queue.get(True, queue_wait_duration)这一行了,请问有大佬知道是什么原因吗?

我也是出现类似情况。使用多个GPU训练,在第一个epoch时候,花了很长时间,大概十几分钟。之后速度就快一些了。但是偶尔会报错:Some NCCL operations have failed or timed out. Due to the asynchronous nature of CUDA kernels, subsequent GPU operations might run on corrupted/incomplete data.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

misaka100001 avatar Mar 18 '24 03:03 misaka100001

这个问题我已经解决了,不过忘了当初是怎么搞定的了。另外我建议不要放在多个GPU上训练,我之前放在多个GPU训练的效果比放在1个GPU上的低了1%,具体原因我也搞不明白 ------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:09 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92) 我运行deeplabv3+的时候,训练一直卡在Epoch 1/200: 0%|不动弹了,用debug看了一下,发现是停在event_file_writer.py里面的data = self._queue.get(True, queue_wait_duration)这一行了,请问有大佬知道是什么原因吗? 我也是出现类似情况。使用多个GPU训练,在第一个epoch时候,花了很长时间,大概十几分钟。之后速度就快一些了。但是偶尔会报错:Some NCCL operations have failed or timed out. Due to the asynchronous nature of CUDA kernels, subsequent GPU operations might run on corrupted/incomplete data. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

数据集小的时候,可以单个GPU。但是数据集大,那还是应该用多个GPU。如果你单个GPU训练的比多个GPU高1%,我觉的一方面是训练结果存在随机性,另一方面是你的参数还可以继续调整。

liuqinglong110 avatar Mar 18 '24 03:03 liuqinglong110

跟数据集大小没啥关系吧,训练所占用的显存只跟模型大小和输入图像的分辨率有关,即使数据集里的图像数量很多也不会爆显存的。另外多个GPU同时训练会让训练效果下降是我重复实验了七八次后得出的结论

------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:16 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92)

这个问题我已经解决了,不过忘了当初是怎么搞定的了。另外我建议不要放在多个GPU上训练,我之前放在多个GPU训练的效果比放在1个GPU上的低了1%,具体原因我也搞不明白 … ------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:09 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92) 我运行deeplabv3+的时候,训练一直卡在Epoch 1/200: 0%|不动弹了,用debug看了一下,发现是停在event_file_writer.py里面的data = self._queue.get(True, queue_wait_duration)这一行了,请问有大佬知道是什么原因吗? 我也是出现类似情况。使用多个GPU训练,在第一个epoch时候,花了很长时间,大概十几分钟。之后速度就快一些了。但是偶尔会报错:Some NCCL operations have failed or timed out. Due to the asynchronous nature of CUDA kernels, subsequent GPU operations might run on corrupted/incomplete data. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

数据集小的时候,可以单个GPU。但是数据集大,那还是应该用多个GPU。如果你单个GPU训练的比多个GPU高1%,我觉的一方面是训练结果存在随机性,另一方面是你的参数还可以继续调整。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

misaka100001 avatar Mar 18 '24 03:03 misaka100001

跟数据集大小没啥关系吧,训练所占用的显存只跟模型大小和输入图像的分辨率有关,即使数据集里的图像数量很多也不会爆显存的。另外多个GPU同时训练会让训练效果下降是我重复实验了七八次后得出的结论 ------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:16 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92) 这个问题我已经解决了,不过忘了当初是怎么搞定的了。另外我建议不要放在多个GPU上训练,我之前放在多个GPU训练的效果比放在1个GPU上的低了1%,具体原因我也搞不明白 … ------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:09 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92) 我运行deeplabv3+的时候,训练一直卡在Epoch 1/200: 0%|不动弹了,用debug看了一下,发现是停在event_file_writer.py里面的data = self._queue.get(True, queue_wait_duration)这一行了,请问有大佬知道是什么原因吗? 我也是出现类似情况。使用多个GPU训练,在第一个epoch时候,花了很长时间,大概十几分钟。之后速度就快一些了。但是偶尔会报错:Some NCCL operations have failed or timed out. Due to the asynchronous nature of CUDA kernels, subsequent GPU operations might run on corrupted/incomplete data. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.> 数据集小的时候,可以单个GPU。但是数据集大,那还是应该用多个GPU。如果你单个GPU训练的比多个GPU高1%,我觉的一方面是训练结果存在随机性,另一方面是你的参数还可以继续调整。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.>

哦哦。我说数据集大的时候,是希望使用多个GPU训练,这样整体速度快一些。

liuqinglong110 avatar Mar 18 '24 04:03 liuqinglong110

跟数据集大小没啥关系吧,训练所占用的显存只跟模型大小和输入图像的分辨率有关,即使数据集里的图像数量很多也不会爆显存的。另外多个GPU同时训练会让训练效果下降是我重复实验了七八次后得出的结论 ------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:16 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92) 这个问题我已经解决了,不过忘了当初是怎么搞定的了。另外我建议不要放在多个GPU上训练,我之前放在多个GPU训练的效果比放在1个GPU上的低了1%,具体原因我也搞不明白 … ------------------ 原始邮件 ------------------ 发件人: "small @.>; 发送时间: 2024年3月18日(星期一) 中午11:09 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [bubbliiiing/deeplabv3-plus-pytorch] 请问训练时为什么会卡在第一个epoch不动呀? (Issue #92) 我运行deeplabv3+的时候,训练一直卡在Epoch 1/200: 0%|不动弹了,用debug看了一下,发现是停在event_file_writer.py里面的data = self._queue.get(True, queue_wait_duration)这一行了,请问有大佬知道是什么原因吗? 我也是出现类似情况。使用多个GPU训练,在第一个epoch时候,花了很长时间,大概十几分钟。之后速度就快一些了。但是偶尔会报错:Some NCCL operations have failed or timed out. Due to the asynchronous nature of CUDA kernels, subsequent GPU operations might run on corrupted/incomplete data. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.> 数据集小的时候,可以单个GPU。但是数据集大,那还是应该用多个GPU。如果你单个GPU训练的比多个GPU高1%,我觉的一方面是训练结果存在随机性,另一方面是你的参数还可以继续调整。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.>

我以前训练Yolov8的时候,遇到过类似的情况。多个GPU训练会卡主。但是后来找了方法:配置export NCCL_P2P_LEVEL=NVL 就可以解决。这次这个问题又出现了,但是配置NCCL_P2P_LEVEL=NVL后还是没法解决。

liuqinglong110 avatar Mar 18 '24 04:03 liuqinglong110