загрузчик данных pytorch "nan" возвращаемое значение - PullRequest
0 голосов
/ 28 октября 2018

Я работаю над построением 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 либо пуст, либо поврежден. Мы считаем, что все аргументы, основанные на обертке, являются правильными, и ошибка возникает внутри функции.

Мы не можем точно определить, где произошел сбой, и нам интересно, есть ли у кого-нибудь понимание.

Спасибо!

...