From e8e483fbf8d17507fecf6b1335d975c36265d315 Mon Sep 17 00:00:00 2001 From: bishe <123456789@163.com> Date: Wed, 26 Feb 2025 22:07:11 +0800 Subject: [PATCH] EDIT_DOWN --- .gitignore | 5 + .../roma_unsb_model.cpython-39.pyc | Bin 18592 -> 19028 bytes models/roma_unsb_model.py | 207 +++++++++--------- scripts/train.sh | 2 +- train.py | 1 + 5 files changed, 113 insertions(+), 102 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..337f343 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +checkpoints/ +*.log +*.pth +*.ckpt +__pycache__/ \ No newline at end of file diff --git a/models/__pycache__/roma_unsb_model.cpython-39.pyc b/models/__pycache__/roma_unsb_model.cpython-39.pyc index ae5f110fcffc048c65560969ef93937ccdb59e29..5f5b809df6c87ae575dc5db0bf146ffaaaabffdf 100644 GIT binary patch delta 5909 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 0.0: + # 生成图像的CTN光流图 + self.f_content = self.ctn(self.weight_fake) + + # 变换后的图片 + self.warped_real_A_noisy2 = warp(self.real_A_noisy, self.f_content) + self.warped_fake_B0 = warp(self.fake_B0,self.f_content) + + # 经过第二次生成器 + self.warped_fake_B0_2 = self.netG(self.warped_real_A_noisy2, self.time, self.z_in) + + warped_fake_B0_2=self.warped_fake_B0_2 + warped_fake_B0=self.warped_fake_B0 + # 计算L2损失 + self.ctn_loss = F.mse_loss(warped_fake_B0_2, warped_fake_B0) + if self.opt.lambda_GAN > 0.0: pred_fake = self.netD_ViT(self.mutil_fake_B0_tokens[0]) - self.loss_G_GAN = self.criterionGAN(pred_fake, True).mean() * self.opt.lambda_GAN + self.loss_G_GAN = self.criterionGAN(pred_fake, True).mean() else: self.loss_G_GAN = 0.0 + self.loss_SB = 0 if self.opt.lambda_SB > 0.0: XtXt_1 = torch.cat([self.real_A_noisy, self.fake_B0], dim=1) @@ -551,9 +558,9 @@ class RomaUnsbModel(BaseModel): bs = self.opt.batch_size # eq.9 - ET_XY = self.netE(XtXt_1, self.time, XtXt_1).mean() - torch.logsumexp(self.netE(XtXt_1, self.time, XtXt_2).reshape(-1), dim=0) + ET_XY = self.netE(XtXt_1, self.time, XtXt_1).mean() - self.netE(XtXt_1, self.time, XtXt_2).mean() self.loss_SB = -(self.opt.num_timesteps - self.time[0]) / self.opt.num_timesteps * self.opt.tau * ET_XY - self.loss_SB += self.opt.tau * torch.mean((self.real_A_noisy - self.fake_B0) ** 2) + self.loss_SB += torch.mean((self.real_A_noisy - self.fake_B0) ** 2) if self.opt.lambda_global > 0.0: loss_global = self.calculate_similarity(self.real_A0, self.fake_B0) + self.calculate_similarity(self.real_A1, self.fake_B1) @@ -561,12 +568,10 @@ class RomaUnsbModel(BaseModel): else: loss_global = 0.0 - self.l2_loss = 0.0 - #if self.opt.lambda_ctn > 0.0: - # wapped_fake_B = warp(self.fake_B, self.f_content) # use updated self.f_content - # self.l2_loss = F.mse_loss(self.fake_B_2, wapped_fake_B) # complete the loss calculation - - self.loss_G = self.loss_G_GAN + self.opt.lambda_SB * self.loss_SB + self.opt.lambda_ctn * self.l2_loss + loss_global * self.opt.lambda_global + self.loss_G = self.opt.lambda_GAN * self.loss_G_GAN + \ + self.opt.lambda_SB * self.loss_SB + \ + self.opt.lambda_ctn * self.ctn_loss + \ + loss_global * self.opt.lambda_global return self.loss_G def calculate_attention_loss(self): diff --git a/scripts/train.sh b/scripts/train.sh index 9f429ab..0c016bf 100755 --- a/scripts/train.sh +++ b/scripts/train.sh @@ -7,7 +7,7 @@ python train.py \ --dataroot /home/openxs/kunyu/datasets/InfraredCity-Lite/Double/Moitor \ - --name ROMA_UNSB_002 \ + --name ROMA_UNSB_003 \ --dataset_mode unaligned_double \ --no_flip \ --display_env ROMA \ diff --git a/train.py b/train.py index cfd728a..8cd245a 100644 --- a/train.py +++ b/train.py @@ -44,6 +44,7 @@ if __name__ == '__main__': model.setup(opt) # regular setup: load and print networks; create schedulers model.parallelize() model.set_input(data) # unpack data from dataset and apply preprocessing + #print('Call opt paras') model.optimize_parameters() # calculate loss functions, get gradients, update network weights if len(opt.gpu_ids) > 0: torch.cuda.synchronize()