将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()
全部解决!