Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于在lolv2-real数据集上训练的问题 #16

Open
spec350 opened this issue Jun 11, 2024 · 17 comments
Open

关于在lolv2-real数据集上训练的问题 #16

spec350 opened this issue Jun 11, 2024 · 17 comments

Comments

@spec350
Copy link

spec350 commented Jun 11, 2024

作者您好,我在lolv2-real数据集上训练遇到了两个问题
1.在训练早期的时候,比如eopch=10或者20时,进行验证,网络输出结果可能会是大部分区域都是黑色的图片(甚至整个图片像素值全是0)
2.我在lolv2-real数据集上训练了几次(也修改了batchsize),都复现不出论文中那种效果,每个指标都比论文中的差(有些指标还差挺多的)

@Fediory
Copy link
Owner

Fediory commented Jun 11, 2024

您好,感谢您对工作的关注。我们在训练的时候遇到过和您完全相同的问题,我们认为这是梯度爆炸导致的图像变黑,可能是tanh激活函数导致的。请尝试修改一下loss,或者是learning rate(最好是1e-4)

@spec350
Copy link
Author

spec350 commented Jun 11, 2024

您好,感谢您对工作的关注。我们在训练的时候遇到过和您完全相同的问题,我们认为这是梯度爆炸导致的图像变黑,可能是tanh激活函数导致的。请尝试修改一下loss,或者是learning rate(最好是1e-4)

好的,但是我使用的学习率就是1e-4。对于第二个问题我应该怎么解决呢

@Fediory
Copy link
Owner

Fediory commented Jun 11, 2024

首先确定您是和我们使用了一样的显卡进行复现。如果仍让不成功,请尝试修改loss为(这是我们当时跑出最优结果的loss):
parser.add_argument('--L1_weight', type=float, default=0)
parser.add_argument('--D_weight', type=float, default=0)
parser.add_argument('--E_weight', type=float, default=0)
parser.add_argument('--P_weight', type=float, default=1e-2)

@shaofei2019
Copy link

首先确定您是和我们使用了一样的显卡进行复现。如果仍让不成功,请尝试修改loss为(这是我们当时跑出最优结果的loss): parser.add_argument('--L1_weight', type=float, default=0) parser.add_argument('--D_weight', type=float, default=0) parser.add_argument('--E_weight', type=float, default=0) parser.add_argument('--P_weight', type=float, default=1e-2)

我也遇到了同样的问题,并且采用了相同的设置推理图像仍然为黑色

作者您好,我在lolv2-real数据集上训练遇到了两个问题 1.在训练早期的时候,比如eopch=10或者20时,进行验证,网络输出结果可能会是大部分区域都是黑色的图片(甚至整个图片像素值全是0) 2.我在lolv2-real数据集上训练了几次(也修改了batchsize),都复现不出论文中那种效果,每个指标都比论文中的差(有些指标还差挺多的)

我也遇到了相同的问题,请问你解决了吗?

@spec350
Copy link
Author

spec350 commented Jun 18, 2024

首先确定您是和我们使用了一样的显卡进行复现。如果仍让不成功,请尝试修改loss为(这是我们当时跑出最优结果的loss): parser.add_argument('--L1_weight', type=float, default=0) parser.add_argument('--D_weight', type=float, default=0) parser.add_argument('--E_weight', type=float, default=0) parser.add_argument('--P_weight', type=float, default=1e-2)

我也遇到了同样的问题,并且采用了相同的设置推理图像仍然为黑色

作者您好,我在lolv2-real数据集上训练遇到了两个问题 1.在训练早期的时候,比如eopch=10或者20时,进行验证,网络输出结果可能会是大部分区域都是黑色的图片(甚至整个图片像素值全是0) 2.我在lolv2-real数据集上训练了几次(也修改了batchsize),都复现不出论文中那种效果,每个指标都比论文中的差(有些指标还差挺多的)

我也遇到了相同的问题,请问你解决了吗?

多训练几次吧,这种情况不是每次都会出现

@zhangrifeng
Copy link

首先确定您使用的是相同的显卡进行复现。如果仍不成功,请尝试修改loss为(这是我们当时跑出最优结果的loss): parser.add_argument('--L1_weight', type=float, default=0) parser.add_argument('--D_weight', type=float, default=0) parser.add_argument('--E_weight', type=float, default=0) parser.add_argument('--P_weight', type=float, default=1e-2)

除了P_weight,其他全部设为0?

@Fediory
Copy link
Owner

Fediory commented Jun 24, 2024

除了P_weight,其他全部设为0?

HVI_weights也请设置为1.0

@g483122074
Copy link

首先确定您是和我们使用了一样的显卡进行复现。如果仍让不成功,请尝试修改loss为(这是我们当时跑出最优结果的loss): parser.add_argument('--L1_weight', type=float, default=0) parser.add_argument('--D_weight', type=float, default=0) parser.add_argument('--E_weight', type=float, default=0) parser.add_argument('--P_weight', type=float, default=1e-2)

我也遇到了同样的问题,并且采用了相同的设置推理图像仍然为黑色

作者您好,我在lolv2-real数据集上训练遇到了两个问题 1.在训练早期的时候,比如eopch=10或者20时,进行验证,网络输出结果可能会是大部分区域都是黑色的图片(甚至整个图片像素值全是0) 2.我在lolv2-real数据集上训练了几次(也修改了batchsize),都复现不出论文中那种效果,每个指标都比论文中的差(有些指标还差挺多的)

我也遇到了相同的问题,请问你解决了吗?
您好,我本人也遇到了相同的问题,请问你们的问题解决了吗

@Fediory
Copy link
Owner

Fediory commented Jun 26, 2024

首先确定您是和我们使用了一样的显卡进行复现。如果仍让不成功,请尝试修改loss为(这是我们当时跑出最优结果的loss): parser.add_argument('--L1_weight', type=float, default=0) parser.add_argument('--D_weight', type=float, default=0) parser.add_argument('--E_weight', type=float, default=0) parser.add_argument('--P_weight', type=float, default=1e-2)

我也遇到了同样的问题,并且采用了相同的设置推理图像仍然为黑色

作者您好,我在lolv2-real数据集上训练遇到了两个问题 1.在训练早期的时候,比如eopch=10或者20时,进行验证,网络输出结果可能会是大部分区域都是黑色的图片(甚至整个图片像素值全是0) 2.我在lolv2-real数据集上训练了几次(也修改了batchsize),都复现不出论文中那种效果,每个指标都比论文中的差(有些指标还差挺多的)

我也遇到了相同的问题,请问你解决了吗?
您好,我本人也遇到了相同的问题,请问你们的问题解决了吗

我可以确定这个问题是梯度爆炸导致的,请多训练几次,或者尝试修改一下loss的weights来解决(比如将P_weights设为0)

@g483122074
Copy link

首先确定您是和我们使用了一样的显卡进行复现。如果仍让不成功,请尝试修改loss为(这是我们当时跑出最优结果的loss): parser.add_argument('--L1_weight', type=float, default=0) parser.add_argument('--D_weight', type=float, default=0) parser.add_argument('--E_weight', type=float, default=0) parser.add_argument('--P_weight', type=float, default=1e-2)

我也遇到了同样的问题,并且采用了相同的设置推理图像仍然为黑色

作者您好,我在lolv2-real数据集上训练遇到了两个问题 1.在训练早期的时候,比如eopch=10或者20时,进行验证,网络输出结果可能会是大部分区域都是黑色的图片(甚至整个图片像素值全是0) 2.我在lolv2-real数据集上训练了几次(也修改了batchsize),都复现不出论文中那种效果,每个指标都比论文中的差(有些指标还差挺多的)

我也遇到了相同的问题,请问你解决了吗?
您好,我本人也遇到了相同的问题,请问你们的问题解决了吗

我可以确定这个问题是梯度爆炸导致的,请多训练几次,或者尝试修改一下loss的weights来解决(比如将P_weights设为0)
作者您好,请问您确定是将P_weights设置为0吗?因为我尝试了这样,但是效果并没有变好。

@Fediory
Copy link
Owner

Fediory commented Jun 29, 2024

作者您好,请问您确定是将P_weights设置为0吗?因为我尝试了这样,但是效果并没有变好。

其实这个weights在不同显卡和不同数据集上的影响是不一样的。我这里只给出我们的最终解决方案:

  1. 使用3090 NVIDIA GPU
  2. 将HVI_weights设置成1.0,P_weights设置成0.01
  3. 其余loss weights均设置成0
    这是我们训练出最好结果的超参,请尝试后看看有没有解决。

@g483122074
Copy link

作者您好,请问您确定是将P_weights设置为0吗?因为我尝试了这样,但是效果并没有变好。

其实这个weights在不同显卡和不同数据集上的影响是不一样的。我这里只给出我们的最终解决方案:

  1. 使用3090 NVIDIA GPU
  2. 将HVI_weights设置成1.0,P_weights设置成0.01
  3. 其余loss weights均设置成0
    这是我们训练出最好结果的超参,请尝试后看看有没有解决。

作者你好,请问你们有没有在A100上训练的经验,我尝试了你们提供的权重,以及我自己尝试的一些方法,但始终没有解决这个梯度爆炸的问题,非常感谢你对我所提问题的关注

@Fediory
Copy link
Owner

Fediory commented Jul 4, 2024

作者你好,请问你们有没有在A100上训练的经验,我尝试了你们提供的权重,以及我自己尝试的一些方法,但始终没有解决这个梯度爆炸的问题,非常感谢你对我所提问题的关注

很抱歉,我们只有在2080Ti,3090,4090,4070,V100上的经验,没有在A100上训练过这个代码。如果您使用了我们预训练的权重去训练,是否还会产生同样的问题?如果您在后面debug中有了新的发现,您可以分享到issue内,谢谢您对工作的支持。

@g483122074
Copy link

作者你好,请问你们有没有在A100上训练的经验,我尝试了你们提供的权重,以及我自己尝试的一些方法,但始终没有解决这个梯度爆炸的问题,非常感谢你对我所提问题的关注

很抱歉,我们只有在2080Ti,3090,4090,4070,V100上的经验,没有在A100上训练过这个代码。如果您使用了我们预训练的权重去训练,是否还会产生同样的问题?如果您在后面debug中有了新的发现,您可以分享到issue内,谢谢您对工作的支持。

您好,非常感谢您的回复,就在刚才我发现了问题所在。之所以出现这样的问题,实际上是数据集的问题,从你们给的链接上直接下载下来的LOLv2_real数据集其中的train和test中的low图片和GT图片命名实际上是对应不上的,所以只需要把low和GT中的对应图片名称改为一致就可以了。这是我的解决方法,我不清楚其他遇到这个问题的人是否是这样。

@Fediory
Copy link
Owner

Fediory commented Jul 4, 2024

作者你好,请问你们有没有在A100上训练的经验,我尝试了你们提供的权重,以及我自己尝试的一些方法,但始终没有解决这个梯度爆炸的问题,非常感谢你对我所提问题的关注

很抱歉,我们只有在2080Ti,3090,4090,4070,V100上的经验,没有在A100上训练过这个代码。如果您使用了我们预训练的权重去训练,是否还会产生同样的问题?如果您在后面debug中有了新的发现,您可以分享到issue内,谢谢您对工作的支持。

您好,非常感谢您的回复,就在刚才我发现了问题所在。之所以出现这样的问题,实际上是数据集的问题,从你们给的链接上直接下载下来的LOLv2_real数据集其中的train和test中的low图片和GT图片命名实际上是对应不上的,所以只需要把low和GT中的对应图片名称改为一致就可以了。这是我的解决方法,我不清楚其他遇到这个问题的人是否是这样。

非常感谢您的提示,这是我们的问题,我们把LOLv2的link给到了原本的论文的github链接。然而实际上我们对这个数据集的命名方式有所修改。目前我们已经把修改后的link进行了替换,您可以重新下载一下。

@spec350
Copy link
Author

spec350 commented Jul 6, 2024

作者你好,请问你们有没有在A100上训练的经验,我尝试了你们提供的权重,以及我自己尝试的一些方法,但始终没有解决这个梯度爆炸的问题,非常感谢你对我所提问题的关注

很抱歉,我们只有在2080Ti,3090,4090,4070,V100上的经验,没有在A100上训练过这个代码。如果您使用了我们预训练的权重去训练,是否还会产生同样的问题?如果您在后面debug中有了新的发现,您可以分享到issue内,谢谢您对工作的支持。

您好,非常感谢您的回复,就在刚才我发现了问题所在。之所以出现这样的问题,实际上是数据集的问题,从你们给的链接上直接下载下来的LOLv2_real数据集其中的train和test中的low图片和GT图片命名实际上是对应不上的,所以只需要把low和GT中的对应图片名称改为一致就可以了。这是我的解决方法,我不清楚其他遇到这个问题的人是否是这样。

其实修改了命名好像也可能出现这种情况,但是概率低了一些,lolv2-syn上也有这种情况

@Klawens
Copy link

Klawens commented Jul 20, 2024

解决不了,多个数据集都这样

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants