Closed ChenYong1993 closed 1 week ago
我发现测试阶段传递了GT图像,下面是cycle_attn_gan_model_sar.py文件中的test函数:
GT
cycle_attn_gan_model_sar.py
test
def test(self): self.real_A = Variable(self.input_A, volatile=True) self.real_B = Variable(self.input_B, volatile=True) self.real_C = Variable(self.input_C, volatile=True) fake_B = self.netG_A.forward(torch.cat([self.real_A,self.real_C],dim = 1)) self.attn_real_A = self.netA_A.forward(self.real_A) self.fake_B = self.mask_layer(fake_B, self.real_A, self.attn_real_A) rec_A = self.netG_B.forward(self.fake_B) self.attn_fake_B = self.netA_B.forward(self.fake_B) self.rec_A = self.mask_layer(rec_A, self.fake_B, self.attn_fake_B) fake_A = self.netG_B.forward(self.real_B) self.attn_real_B = self.netA_B.forward(self.real_B) self.fake_A = self.mask_layer(fake_A, self.real_B, self.attn_real_B) rec_B = self.netG_A.forward(torch.cat([self.fake_B,self.real_C],dim = 1)) self.attn_fake_A = self.netA_A.forward(self.fake_A) self.rec_B = self.mask_layer(rec_B, self.fake_A, self.attn_fake_A)
这里,real_A、B、C应该分别对应有云图像、干净的GT图像和SAR图像,但是这是测试阶段,为什么也要用到real_B呢?
请选择pix2pix_attn模型,这个是我们论文提出的方法。CycleGAN是双向的转换,要将A转换成B,B也要输入转为A,所以会用到real_B。pix2pix是单向的模型,test函数里只是读取了real_B,并没有传到网络中去。
我发现测试阶段传递了
GT
图像,下面是cycle_attn_gan_model_sar.py
文件中的test
函数:这里,real_A、B、C应该分别对应有云图像、干净的GT图像和SAR图像,但是这是测试阶段,为什么也要用到real_B呢?