【问题标题】:Something wrong when I use the Dataloader使用 Dataloader 时出现问题
【发布时间】:2021-10-30 13:07:26
【问题描述】:

pre_proceed 数据集的短语

class data_test(Dataset):
def __init__(self,data_root,transform=None):
    data_image=glob.glob(data_root+'/*.jpg')

    self.data_image=data_image
    self.transform=transform

def __getitem__(self, index):
    data_image_path=self.data_image[index]

    image_data=cv2.imread(data_image_path,-1) # unchanged
    if self.transform:
        image_data=self.transform(image_data)

    return image_data

上面的操作很普通,但是当我加载数据集的时候,

`dataset=data_test(train_dataset,transforms)
data=DataLoader(dataset,batch_size=8,num_workers=0)
for idx,data in enumerate(data):
    print(data.shape)`

发生错误,

【问题讨论】:

    标签: pytorch pytorch-dataloader


    【解决方案1】:

    错误实际上是非常具体的错误,引发的错误是NotImplementedError。您应该在自定义数据集中实现 __len__ 函数。

    在您的情况下,就像(假设 self.data_image 包含所有数据集实例)将此函数添加到 data_test 类一样简单:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-15
      • 2011-06-14
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2019-03-30
      • 2013-04-14
      相关资源
      最近更新 更多