Я работаю над построением GAN на основе VGG в рамках существующего проекта, озаглавленного CartoonGAN: https://github.com/znxlwm/pytorch-CartoonGAN. В целом, модель не обучает и возвращает «нан» для функций потерь. Я почти уверен, что это связано с проблемой загрузки данных. Автор оригинального проекта определил функцию «data_load», чтобы обернуть вокруг функции Pytorch «DataLoader». Опубликовано ниже:
def data_load(path, subfolder, transform, batch_size, shuffle=False, drop_last=True):
dset = datasets.ImageFolder(path, transform)
print("DSET IS "+str(dset))
ind = dset.class_to_idx[subfolder]
print("IND IS " + str(ind))
n = 0
for i in range(dset.__len__()):
print("for loop on interation ", str(i))
print("dset.img is "+str(dset.imgs))
#print("Current item: ", str(dset.__getitem__(i)))
if ind != dset.imgs[n][1]:
del dset.imgs[n]
n -= 1
n += 1
return torch.utils.data.DataLoader(dset,
batch_size=batch_size, shuffle=shuffle, drop_last=drop_last)
Мы думаем, что возвращаемый объект data_loader либо пуст, либо поврежден. Мы считаем, что все аргументы, основанные на обертке, являются правильными, и ошибка возникает внутри функции.
Мы не можем точно определить, где произошел сбой, и нам интересно, есть ли у кого-нибудь понимание.
Спасибо!