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

关于loss疑问 #48

Open
yangjian1218 opened this issue Jul 14, 2022 · 3 comments
Open

关于loss疑问 #48

yangjian1218 opened this issue Jul 14, 2022 · 3 comments

Comments

@yangjian1218
Copy link

疑问1: 在代码image_restoration_model.py 225行l_total = l_total + 0. * sum(p.sum() for p in self.net_g.parameters()) . 0乘以任何数都=0,这是啥操作?
疑问2: 关于PSNRLoss:self.scale * torch.log(((pred - target) ** 2).mean(dim=(1, 2, 3)) + 1e-8).mean(). 即 10/ln(10) * ln(MSE) 这里MaxValue是=1的吧?. PSNR公司 MSE是在分母位置, 这里为什么在分子位置. 如果在分子位置,那么这个损失是负值啊. 怎么梯度更新呢?

@mayorx
Copy link
Collaborator

mayorx commented Jul 19, 2022

yangjian1218, 您好,
感谢您对NAFNet的关注。

关于疑问1. 只是因为有时模型定义的参数并没有真正参与到计算(所以会没有梯度),训练时可能会报错。
为了绕过这个问题我们加了这一句, 使得每个参数都会有梯度绕过这个问题, 可以忽略。

关于疑问2. loss 为负数并不会影响梯度 / 参数的更新。

@yangjian1218
Copy link
Author

yangjian1218, 您好, 感谢您对NAFNet的关注。

关于疑问1. 只是因为有时模型定义的参数并没有真正参与到计算(所以会没有梯度),训练时可能会报错。 为了绕过这个问题我们加了这一句, 使得每个参数都会有梯度绕过这个问题, 可以忽略。

关于疑问2. loss 为负数并不会影响梯度 / 参数的更新。

关于第二个问题, 我有了进一步的理解,就是把PSNR进行展开后为一个常数被减数-减数, 其中减数部分作为损失函数. PSNR要越来越大好,减数就要越来越小好, 是否可以这么理解?
image

@mayorx
Copy link
Collaborator

mayorx commented Jul 26, 2022

yangjian1218, 您好, 感谢您对NAFNet的关注。
关于疑问1. 只是因为有时模型定义的参数并没有真正参与到计算(所以会没有梯度),训练时可能会报错。 为了绕过这个问题我们加了这一句, 使得每个参数都会有梯度绕过这个问题, 可以忽略。
关于疑问2. loss 为负数并不会影响梯度 / 参数的更新。

关于第二个问题, 我有了进一步的理解,就是把PSNR进行展开后为一个常数被减数-减数, 其中减数部分作为损失函数. PSNR要越来越大好,减数就要越来越小好, 是否可以这么理解? image

yangjian1218, 您好,

我认为这样的理解没有问题。

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

2 participants