sunhang1986 / HFIM_MRDCB_dehaze

MIT License
1 stars 0 forks source link

There is a size-mismatching problem #1

Open shangyuu opened 2 years ago

shangyuu commented 2 years ago

When I run test.py, there is a problem popping up. How can I fix this ? thank you

(HFIM_MRDCB_dehaze) C:\Users\user\Desktop\HFIM_MRDCB_dehaze>python test.py MyEnsembleNet parameters: 60503115 --- weight loaded --- Traceback (most recent call last): File "test.py", line 84, in img_tensor = MyEnsembleNet(hazy) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(*input, kwargs) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\parallel\data_parallel.py", line 159, in forward return self.module(*inputs[0], *kwargs[0]) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(input, kwargs) File "C:\Users\user\Desktop\HFIM_MRDCB_dehaze\model.py", line 453, in forward feature=self.feature_extract(input) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(*input, *kwargs) File "C:\Users\user\Desktop\HFIM_MRDCB_dehaze\model.py", line 410, in forward x_layer2 = self.layer2(x_layer2,x_layer3) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(input, *kwargs) File "C:\Users\user\Desktop\HFIM_MRDCB_dehaze\meu.py", line 56, in forward b = high (low_pa+1) RuntimeError: The size of tensor a (70) must match the size of tensor b (69) at non-singleton dimension 3

sunhang1986 commented 2 years ago

我们下载了上传到github上的代码,确实存在一些问题,我们正在整理,明天或者后天我们将整理的代码更新到github上。

sunhang1986 commented 2 years ago

我们已经更新了仓库中的代码和网盘中的训练好的模型,并且在linux上测试可以正常执行。由于之前上传的代码和模型是中间版本,执行代码出现报错,我们表示抱歉。对于您的问题,请先尝试重新下载我们的代码和模型。如果还有问题,建议您在Linux上执行我们的程序,并且pytorch版本和我们保持一致。

shangyuu commented 2 years ago

很感谢您的快速回复以及上传修正过后的代码和模型 我会再试着执行看看 再次感谢您

sunhang1986 commented 2 years ago

不客气,有什么问题,可以继续沟通。

shangyuu commented 2 years ago

您好 不好意思 又要打扰您一下 我已经下载更新过后的代码以及模型 不过还是出现类似的问题

(HFIM_MRDCB_dehaze) C:\Users\user\Desktop\HFIM_MRDCB_dehaze>python test.py MyEnsembleNet parameters: 60503115 --- weight loaded --- Traceback (most recent call last): File "test.py", line 88, in img_tensor = MyEnsembleNet(hazy) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(*input, kwargs) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\parallel\data_parallel.py", line 159, in forward return self.module(*inputs[0], *kwargs[0]) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(input, kwargs) File "C:\Users\user\Desktop\HFIM_MRDCB_dehaze\model.py", line 454, in forward feature=self.feature_extract(input) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(*input, *kwargs) File "C:\Users\user\Desktop\HFIM_MRDCB_dehaze\model.py", line 410, in forward x_init = self.init(x_init,x_layer1) File "F:\Anaconda\envs\HFIM_MRDCB_dehaze\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(input, *kwargs) File "C:\Users\user\Desktop\HFIM_MRDCB_dehaze\meu.py", line 53, in forward b = high low_pa RuntimeError: The size of tensor a (276) must match the size of tensor b (275) at non-singleton dimension 3

shangyuu commented 2 years ago

另外 我在执行test.py的时候 from train_dataset import dehaze_train_dataset 这行我有註解掉 因为他说没有train_dataset此module

还有就是我下载了全部的预训练模型 只有moderation.pkl是可以用的 若用其他的模型 像是thin.pkl、rice2.pkl等 都会显示"no weight loaded"

不好意思 再麻烦您有空时回复一下

sunhang1986 commented 2 years ago

我们在服务器上运行代码的时候没有遇到您的问题,并且我们将运行代码的过程进行了屏幕录制,该录制文件也已放至存放预训练模型的网盘中,您可以下载进行观看。对于您遇到的问题,建议在linux环境下运行代码,因为在不同操作系统下,可能会造成不一样的结果。

shangyuu commented 2 years ago

好的 很感谢您的回复 那我会再试看看 也真的很感谢您还帮我录製影片 真的麻烦您了 谢谢

sunhang1986 commented 2 years ago

不用客气。建议您在linux下,采用和我们一样的环境配置再运行程序。我们没有在windows下进行测试过代码,并且不同版本的pytorch会存在差异。如果还有问题可以留下您的QQ,我们可以进一步继续沟通。

shangyuu commented 2 years ago

好的 谢谢您 那我再试看看好了 有问题的话再跟您请教

shangyuu commented 2 years ago

不好意思 方便的话可以请您看一下meu.py这个档案是不是有误吗? 因为我换成一样的linux环境之后还是会出现size不匹配的状况 麻烦您了 谢谢

sunhang1986 commented 2 years ago

不用客气,针对您的问题,我们将上传到github上的代码下载下来,并重新录制了一个比较详细的视频,已经上传到了百度网盘中,您可以从百度网盘中下载观看。另外,您可以参考视频提供的方式运行代码,如果您依然遇到问题,我们可以继续沟通交流

shangyuu commented 2 years ago

好的 不好意思 又麻烦您了 我会再试看看 真的感谢您

shangyuu commented 2 years ago

您好 偶然间发现到以下网址的代码跟您是差不多的 https://github.com/liuh127/NTIRE-2021-Dehazing-Two-branch 来源论文也是同一篇 所以想请问您的代码跟这篇有什麽差异吗? 我发现到有些许档案不太一样 不确定架构有没有不同

sunhang1986 commented 2 years ago

您好,我们的论文还在投稿中,我们在此先简要的回答一下您的问题,如果论文录用了,我们将给出论文链接,您可以看一下我们论文中的细节。 首先,您说的”A Two-branch Neural Network for Non-homogeneous Dehazing via Ensemble Learning”是一个双分支去雾网络(2021,cvpr),我们在此简称为TNN。此外,还有一个三分支去雾网络”Trident Dehazing Network”(2020,cvpr),我们在此简称为TDN。其实无论是双分支,还是三分支都是集成学习的思想来做图像去雾。您阅读一下TDN和TNN论文,TDN是一个由1个加载图像分类预训练模型的U型网络和2个没有加载预训练模型的U型网络组成的三分支去雾网络。而TNN是对TDN的简化和优化,它的第一个分支加载图像分类预训练模型的U型网络,与TDN相比,是将预训练模型DPN92替换成了res2net,解码层加上了FFA-Net去雾网络(2020,AAAI)里面设计的注意力模块,第二个分支则是引入”Image super-resolution using very deep residual channel attention networks”(2018,ECCV)这篇文章中设计的残差通道注意力块模块,组成不进行下采样的“直筒结构”。由此可以看出集成学习是一个很好的去雾框架。我们的论文和代码也是基于集成学习的框架。 但是U型网络和直筒结构组成的集成学习框架,也存在一些问题。 (1)第一个问题,我们做深度学习的都知道,一个网络的浅层包含边缘纹理,深层包含语义信息,但是具体哪些层属于浅层,哪些属于深层呢?其实没有一个明显的界定,实际上我们在实验过程中可视化一些结果发现,其实应该网络中说上一层比下一层包含更多的边缘信息,下一层比上一层包含更多语义信息,这是没有绝对的界限的。于是我们在U型网络中设计了层级特征交互融合模块将编码阶段的高维语义信息逐层和低维细节纹理信息融合,并且在融合过程中,将高维特征中的每个通道作为语义信息嵌入到低维特征中作为指导,将低维特征中提取到的空间注意矩阵嵌入到高维特征中作为指导。从而帮助U型提升网络重构去雾图像的性能。 (2)第二个问题,由于遥感图像中的场景尺度变化很大,如同一张遥感图像中可能具有较大场景的建筑和较小场景的人。然而,TNN论文设计的“直筒结构”网络,感受野大小十分受限。因此,我们设计了多尺度残差空洞卷积模块,该模块能够在不改变特征图尺寸的同时增加网络的感受野,可以更好的利用上下文信息用于图像去雾和恢复。 上面介绍了我们基于二分支集成学习框架的创新,也可以理解为以TNN的不同。具体细节等论文录用了,我们会把链接放上来。此外,在两个遥感公开数据集(包含5个子数据集)上,我们的网络在psnr和ssim指标上都取得了第一名。我们将论文中的对比算法的表上传到百度网盘,分别命名为“table1.png”和“table2.png”。红色框是我们模型的指标,绿色是TNN的指标,可以看到我们设计的模型相比TNN在各个子数据集上都取得了比较大的提升。此外,table1.png中Huang(2020,WACV),Haze1k数据集是这篇论文提出,作者公布了两组结果:“with sar”和“without sar”,sar是多孔径雷达数据,可以提供很多细节用于图像去雾和恢复,特别是浓雾,“with sar”能够达到25的psnr。但是作者公布数据集中的sar不可用,我们仔细研究后发现数据集中sar不是和可见光图像配对的,也找不到对应的配对可见光图像。但是我们惊喜的发现我们提出的模型在薄中厚三个子数据集上的psnr全面战胜了“without sar”。最后,我们在百度网盘上传了我们去雾模型和TNN模型的一些可视化结果,名字为“visual.png”,可以看到我们能够取得更好的视觉效果。我们的文章目前正在外审阶段,如果有幸录用,欢迎您引用我们的论文,多谢。

sunhang1986 commented 2 years ago

上面回复有一句写错了,修改成《但是我们惊喜的发现我们提出的模型在薄中厚三个子数据集上的psnr全面战胜了“with sar”》