XavierJiezou / PMAA

Official PyTorch implementation of "PMAA: A Progressive Multi-scale Attention Autoencoder Model for High-Performance Cloud Removal from Multi-temporal Satellite Imagery" (ECAI 2023).
https://xavierjiezou.github.io/PMAA/
MIT License
19 stars 6 forks source link

无法正常搭建环境 #1

Closed try-agaaain closed 1 year ago

try-agaaain commented 1 year ago

通过pip install requiremnets.txt命令搭建环境时有些包的版本出现了冲突,比如 numpy==1.19.3 和 scipy==1.5.2 是冲突的,我采用的是python3.9版本,尝试过3.8和3.7版本,但也存在冲突问题。

try-agaaain commented 1 year ago

结合requirements.txt并根据2021年的python库版本我搭建了一个环境,步骤如下:

conda create -n 2021 python=3.9
conda activate 2021
pip install numpy==1.20.3
pip install Pillow==8.2
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
pip install scikit-image==0.17.2
pip install tqdm
pip install timm==0.6.12

能够解决库冲突问题,不过当前的代码存在一些小问题,导致无法正常运行:

① 在PMAA\model\pmaa.py文件中使用get_norm_act_layer(norm_layer, act_layer)函数时传递了两个参数,而该函数的定义中只能接收一个参数,导致错误:

TypeError: get_norm_act_layer() takes 1 positional argument but 2 were given

get_norm_act_layer(norm_layer, act_layer) 改为 get_norm_act_layer(norm_layer) 可解决该问题

② 在model\pmaa.py文件中,out_layer的定义如下:

        self.output_layer = nn.Sequential(
            nn.Conv2d(hidden_channels, out_channels,
                      kernel_size=7, padding=int((7-1)//2)),
            nn.Tanh()
        )

但github中存放的pretrained/pmaa_old.pth中的卷积核大小为1,可以将上面的代码改为nn.Conv2d(hidden_channels, out_channels, kernel_size=1), 以解决问题。

通过上面的修改,可以正常的运行test_old.py文件。

针对上面的问题我提交了一个PR (: