-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
Hi, I added custom dataset like below:
def pil_loader(path):
# open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835)
with open(path, 'rb') as f:
img = Image.open(f)
img = img.resize((32,32))
img = img.convert('RGB')
return img
class GEO(Dataset):
'''
:param train_path: /media/gaoya/disk/Applications/pytorch/Incremental Learning/train_dataset
:param test_path /media/gaoya/disk/Applications/pytorch/Incremental Learning/test_dataset
'''
def __init__(self,train_path, test_path):
super().__init__(classes=5, name="GEO", labels_per_class_train=500, labels_per_class_test=100)
imgs = numpy.array([])
self.train_transform = transforms.Compose([
transforms.Resize(32),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
])
self.test_transform = transforms.Compose([
transforms.Resize(32),
transforms.ToTensor(),
transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
])
self.train_data = datasets.ImageFolder(root=train_path,
transform=self.train_transform,
loader=pil_loader)
imgs = numpy.array([self.train_transform(pil_loader(path[0])).numpy().transpose(2,1,0) for path in self.train_data.imgs])
# img_temp = imgs[0]
# for k in range(1, len(imgs)):
# img_temp = numpy.stack((img_temp, imgs[k]))
self.train_imgs = imgs
self.train_targets = self.train_data.targets
self.test_data = datasets.ImageFolder(root=test_path,
transform=self.test_transform,
loader=pil_loader)
self.test_imgs = numpy.array([self.test_transform(pil_loader(path[0])).numpy().transpose(2,1,0) for path in self.test_data.imgs])
self.test_targets = self.test_data.targetsand I also have changed the code about dataset_loader( like data is dataset.train_imgs, labels is dataset.train_targets)
When I reran the file, I got error:
Traceback (most recent call last):
File "run_experiment.py", line 224, in <module>
my_trainer.increment_classes(class_group)
File "H:\MachineLearning\incremental-learning-autoencoders\trainer\trainer.py", line 78, in increment_classes
pop_val = self.all_classes.pop()
IndexError: pop from empty list
Can you tell me what's wrong with the code? My custom datasets have 5 classes (traing set is ((8476, 32, 32, 3), testing set is (1021, 32, 32, 3))
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels