Fried-Rice-Lab / FriedRiceLab

Official repository of the Fried Rice Lab, including code resources of the following our works: ESWT [arXiv], etc. This repository also implements many useful features and out-of-the-box image restoration models.
MIT License
209 stars 30 forks source link

关于ELAN训练问题 #27

Closed luierlyy closed 1 month ago

luierlyy commented 2 months ago

您好,打扰了。这段时间我在尝试用项目中的ELAN来做复现。不过训练结果出现了我不太理解的小情况。

2024-09-06 20:39:29,841 INFO: End of training. Time consumed: 1 day, 18:33:09 2024-09-06 20:39:29,841 INFO: Save the latest model. 2024-09-06 20:40:06,041 INFO: Validation DF2K_val_10 [psnr] [Current: 32.0092 @ iter 1000002] [Best: 32.3932 @ iter 10000] [ssim] [Current: 0.8654 @ iter 1000002] [Best: 0.8727 @ iter 11000] 这个是训练结束的最后文档打印,显示从10000iter之后对验证集的结果就没有明显提升了。 然后下面是对测试集的结果。 2024-09-07 00:17:11,326 INFO: Testing Set5... 2024-09-07 00:17:16,027 INFO: Validation Set5 [psnr] [Current: 9.4158 @ iter ELAN_CSR_x3] [Best: 9.4158 @ iter ELAN_CSR_x3] [ssim] [Current: 0.0146 @ iter ELAN_CSR_x3] [Best: 0.0146 @ iter ELAN_CSR_x3]

2024-09-07 00:17:16,027 INFO: Testing Set14... 2024-09-07 00:17:22,978 INFO: Validation Set14 [psnr] [Current: 10.3881 @ iter ELAN_CSR_x3] [Best: 10.3881 @ iter ELAN_CSR_x3] [ssim] [Current: 0.0164 @ iter ELAN_CSR_x3] [Best: 0.0164 @ iter ELAN_CSR_x3] 应该就是直接利用的iter10000时的权重参数吧,但明显训练结果很奇怪。

训练用的指令是python train.py -expe_opt options/expe/ELAN/ELAN_CSR.yml -task_opt options/task/CSR_x3.yml yml文件里面的参数除了batch_size因为显卡的原因不能设置太大改成了4,其他参数没怎么改动。 请问对于这方面有什么建议和问题来源等意见么。或者从哪里可以自己设置想要调用的权重路径么?

感谢感谢,十分感谢。

jnpngshiii commented 2 months ago

你把网络的输入和输出保存一下看看? 我记得在训练时偶尔会遇到输出全黑的情况 (也就是像素值全为 [0, 0, 0] 的情况). 这种情况可能会发生在:

  1. 使用了未正确处理的自己的数据集 (但我看 log 似乎用的是默认数据集)
  2. 使用了错误的 bit 设置 (试试替换为 0)

先简单看下能不能解决你的问题.

luierlyy commented 2 months ago

好的,我去试一下! 另外想请教一个问题,bit的设定是根据什么来决定的呢?因为数据类型是lmdb所以需要用bit=8么,如果图像输入的是图片格式的话bit的设置有什么具体的影响么?

jnpngshiii commented 2 months ago

不是, 这个无所谓. 可以看下 README.