MoyangSensei / CARN-Pytorch

A Super-Resolution Network Using Channel Attention Retention for Pathology Images, PeerJ Computer Science
6 stars 0 forks source link

在复现中出现了一些问题 #2

Open cjzhzh opened 8 months ago

cjzhzh commented 8 months ago

你好,感谢你的工作。 我下载了你放的数据集 但我不知道数据集目录结构具体是怎么组织的 U3`D(1PL9Y835JDNF@YN0K8 我在HR中放了所有的1200图就是下载的你的 然后LR_bic/X2目录放了1200用bicubic缩小为原来的一半的图 命令--dir_data /home/xingzehang/project_18t/xzh/project/CARN-Pytorch-main2023/dataset --data_train MCSR --data_test MCSR --model CARN --data_range 0001-1000/1001-1200 --scale 2 --save our_x2_8dcarb_8L1+1MSE+1SSIM_reduce8 --n_resgroups 8 --reduction 8 --n_feats 64 --patch_size 64 --lr 0.0001 --batch_size 16 --res_scale 0.1 --seed 11 --epochs 2 --loss 0.8L1+0.1MSE+0.1*SSIM --reset --save_results 但是还是会报错 @U~PY W}TXUK$R(@ (TPO$D 确实没太懂,具体应该怎么放,希望您抽空回复一下

MoyangSensei commented 8 months ago

你好,感谢关注我们的工作!

从你给出的报错中可以看到是代码无法读取正确的文件目录所导致的(因为所给出的目录中的图片数量为0)。

这份代码修改自EDSR,请在readme中寻找相关的github主页信息,如有其他报错内容可以在那边仓库中找到。

但是我有看到你放的目录是正确的,其中bin是由代码生成的图像的二进制数据文件,用于在代码训练中使用。如果原始数据中无bin的话,代码会自动生成bin目录及其内文件。

但是你的命令我也未发现问题。

因此,你的bin是自己生成的吗?我记得我未将bin上传。如果bin是代码自行生成的话,代码则是正常运行的。当bin目录生成一次后则不会再重复生成。这些信息都可以在EDSR的仓库issue中寻找到。

祝好。

cjzhzh commented 8 months ago

感谢感谢 你回复的好快 这个bin是你的代码生成的 因为我不知道你的数据集结构怎么组织的所以 GE%K2{$FFWNG@~89427T2M1 我就在dataset下放了下载你的train和test(里面是下载的你的png) 然后运行代码自动生成MCSR,然后我看HR和LR_bic中什么都没有 我就把图片放进去了

MoyangSensei commented 8 months ago

你好!

你这里的路径还是错误的。

依据命令行--dir_data your_path --data_train MCSR --data_test MCSR

正确的放置数据集的方法为: --your_path ----MCSR ------HR(内有1200图像,分辨率为1024) ------LR_bic(内有1200图像,分别3个倍数下采样,2x4x8x)

请将train和test的同类文件放置在同样的目录下:train的HR有1000+test的HR有200=1200图像均放置在HR目录内,LR同理。

当代码正确运行之后,数据集目录自动生成bin及其内文件: --your_path ----MCSR ------HR(内有1200图像,分辨率为1024) ------LR_bic(内有1200图像,分辨率为1024) ------bin --------HR(内有pt文件) --------LR_bic(内有pt文件,分别3个倍数下采样,2x4x8x)

如果仍旧无法正确放置数据集,请参考edsr中div2k数据集的放置。

cjzhzh commented 7 months ago

感谢感谢,能放一下你的测试代码吗目前的测试指标只有PSNR,没有SSIM,EDSR作者的ssim也没放他说他是用matlab算的,而且我想知道你划分验证集了吗 image

MoyangSensei commented 7 months ago

你好!工作有些忙这周才看见。

测试指标的代码已上传。内有两类实现,一类是使用skimage的内置函数,一类是我当时在互联网上找的代码。需要注意,两类ssim的实现方式,计算出来的指标是不一样的。我至今也不知道哪个是绝对正确的。来自互联网的代码我和我老师以及师姐讨论过,没发现问题。psnr不会出现此问题。另外还有lpips的指标计算,如果不想用的话请自行屏蔽掉相应代码。

验证集的划分我在这篇论文里没有做,古早的经典SR论文里都只考虑了test set的精度并且未提到过val set。我目前已经换方向了,并不清楚现在的SR论文是否对这方面有要求。如果你觉得数据量不足,我给出的数据集可以扩展,请参考论文中所引用的给出坐标点的那篇论文,在cam原数据集上重新生成更多数据即可。

cjzhzh commented 4 months ago

感谢之前的解答,我还有个疑问 将epoch设置为300后 发现终端中只输出epoch1-299 究竟是运行了300epoch还是299epoch呢 我去看了一下EDSR的代码 也是这样弄的 我觉得是只运行了299个epoch 好怪