报错:

 File "/home/xinying/self-supervised-relational-reasoning-master/methods/standard.py", line 81, in linear_evaluation
    if torch.cuda.is_available(): data, target = data.cuda(), target.cuda()
AttributeError: 'list' object has no attribute 'cuda'

列表list没有cuda属性,要转为tensor

target = np.array(target)# list转numpy.array
target = torch.from_numpy(target) # array2tensor

问题解决
完整代码:

class Living_Body_Test(Dataset):
    def __init__(self, test_path,test_transform,**kwds):
        super().__init__()
        self.test_path = test_path
        self.transform = test_transform
        self.imgs = []
        self.targets = []
        fc = open(test_path)
        lines = fc.readlines()
        for line in lines:
            line = line.strip('\n').split(',')
            #print('line',line)
            image_path = line[0]
            target = line[1]
            self.imgs.append(image_path)
            self.targets.append(int(target))


        '''for img in os.listdir(self.img_path):
            img_path = os.path.join(self.img_path, img)
            self.imgs.append(img_path)'''

    def __len__(self):
        return len(self.imgs)

    def __getitem__(self, index):
        #img, target = self.data[index], self.targets[index]
        img = Image.open(self.imgs[index].replace('jinfeng','xinying'))
        target = self.targets[index]
        pic = img
        img = np.array(img)
        #img = cv2.merge([img,img,img])
        #pic = torch.from_numpy(np.array(img))
        #pic = np.array(img)

        img_list = list()
        if self.transform is not None:
            img = self.transform(pic.copy())
            #img_list.append(img_transformed)
        else:
            img_list = None
        target = np.array(target)
        target = torch.from_numpy(target)

        #if self.target_transform is not None:
            #target = self.target_transform(target)
        return img, target

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐