2023年复现DistanceGAN实现红外彩色化任务

将base,train和test设置自己需要的

gpu_ids=1
nThreads=0
how_many=1500

在train_distancegan.sh和test_distancegan.sh设置自己的路径和名称

python train.py --dataroot /home/sys120-1/cy/transformer/FLIR_wash_day --name flir --model distance_gan --pool_size 50
python test.py --dataroot /home/sys120-1/cy/transformer/Ablation_study/Modification/flir_day --name flir --model distance_gan --phase test

打开visdom

python -m visdom.server

输入上述的train命令,开始调错

Traceback (most recent call last):
  File "train.py", line 9, in <module>
    data_loader = CreateDataLoader(opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/data/data_loader.py", line 7, in CreateDataLoader
    from unaligned_data_loader import UnalignedDataLoader
ModuleNotFoundError: No module named 'unaligned_data_loader'

Traceback (most recent call last):
  File "train.py", line 9, in <module>
    data_loader = CreateDataLoader(opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/data/data_loader.py", line 7, in CreateDataLoader
    from cyclegan_arch.data.unaligned_data_loader import UnalignedDataLoader
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/data/unaligned_data_loader.py", line 4, in <module>
    from base_data_loader import BaseDataLoader
ModuleNotFoundError: No module named 'base_data_loader'

路径问题,全部改成

from cyclegan_arch.data.unaligned_data_loader import UnalignedDataLoader
from cyclegan_arch.data.base_data_loader import BaseDataLoader
from cyclegan_arch.data.image_folder import ImageFolder
Traceback (most recent call last):
  File "train.py", line 9, in <module>
    data_loader = CreateDataLoader(opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/data/data_loader.py", line 10, in CreateDataLoader
    data_loader.initialize(opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/data/unaligned_data_loader.py", line 61, in initialize
    transformations = [transforms.Scale(opt.loadSize),
AttributeError: module 'torchvision.transforms' has no attribute 'Scale'

版本问题,改成

transformations = [transforms.Resize(opt.loadSize)
Traceback (most recent call last):
  File "train.py", line 14, in <module>
    model = create_model(opt, dataset)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/models.py", line 13, in create_model
    from .distance_gan_model import DistanceGANModel
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 7, in <module>
    from util import util as util
ModuleNotFoundError: No module named 'util'

改成

import cyclegan_arch.util.util as util
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/models.py", line 18, in create_model
    model.initialize(opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 21, in initialize
    CycleGANModel.initialize(self, opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/cycle_gan_model.py", line 16, in initialize
    GANModel.initialize(self, opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/gan_model.py", line 30, in initialize
    opt.ngf, opt.which_model_netG, opt.norm, opt.use_dropout, self.gpu_ids)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/networks.py", line 46, in define_G
    netG.cuda(device_id=gpu_ids[0])
TypeError: cuda() got an unexpected keyword argument 'device_id'

改成

device=gpu_ids[0]
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/models.py", line 18, in create_model
    model.initialize(opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 27, in initialize
    self.set_expectation_and_std()
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 168, in set_expectation_and_std
    self.expectation_A = self.get_expectation(num_vars_A, A_vars)[0].astype(float)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 127, in get_expectation
    for i in xrange(num_items - 1):
NameError: name 'xrange' is not defined

版本问题,在python2中,经常使用xrange,在python3中是用range替代,作用完全相同,改成

        for i in range(num_items - 1):
            for j in range(i + 1, num_items):
                num_pairs += 1
                distance_sum += self.as_np(self.distance(vars[i], vars[j]))
Traceback (most recent call last):
  File "train.py", line 14, in <module>
    model = create_model(opt, dataset)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/models.py", line 18, in create_model
    model.initialize(opt)
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 27, in initialize
    self.set_expectation_and_std()
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 168, in set_expectation_and_std
    self.expectation_A = self.get_expectation(num_vars_A, A_vars)[0].astype(float)
IndexError: invalid index to scalar variable.

索引出现错误,改成

        self.expectation_A = self.get_expectation(num_vars_A, A_vars).astype(float)
        self.expectation_B = self.get_expectation(num_vars_B, B_vars).astype(float)
        self.std_A = self.get_std(num_vars_A, A_vars, self.expectation_A).astype(float)
        self.std_B = self.get_std(num_vars_B, B_vars, self.expectation_B).astype(float)
Traceback (most recent call last):
  File "train.py", line 38, in <module>
    errors = model.get_current_errors()
  File "/home/sys120-1/cy/transformer/unpair/DistanceGAN-master/cyclegan_arch/distance_gan_model.py", line 220, in get_current_errors
    D_A = self.loss_D_A.data[0]
IndexError: invalid index of a 0-dim tensor. Use `tensor.item()` in Python or `tensor.item<T>()` in C++ to convert a 0-dim tensor to a number

版本问题,改成

        D_A = self.loss_D_A.data.item()
        G_A = self.loss_G_A.data.item()
        Dist_A = self.loss_distance_A.data.item()

        D_B = self.loss_D_B.data.item()
        G_B = self.loss_G_B.data.item()
        Dist_B = self.loss_distance_B.data.item()

全部解决!

猜你喜欢

转载自blog.csdn.net/qq_40721108/article/details/129435444