Hi,  I am trying to practice semantic segmentation using Pascal Voc. I wrote a subclass of VOCSegmentation, and I defined transformation. When I try to read one element of train_set, I got the following error,
call() takes 1 positional argument but 3 were given
I can’t understand where the problem is. Here is my code:
class myVOCSegmentation(VOCSegmentation):
def __getitem__(self,index):
    
    img = Image.open(self.images[index].convert('RGB'))
    
    target = Image.open(self.masks[index])
    
    if self.transforms is not None:

        
        agumented = self.transforms(image= np.array(img),mask = np.array(target))
        
        img = agumented['image']
        
        target = agumented['mask']
        
        # here we have 20 classes, so we set data larger than 20 equal to 0
        target[target>20]=0
        
    img = to_tensor(img)
        
    target = torch.from_numpy(target).type(torch.long)
    
    return(img,target)          

h,w = 520,520
mean = [0.485, 0.456, 0.406]
std = [0.229, 0.224, 0.225]
transform_train = Compose([Resize(h,w),
HorizontalFlip(p=0.5),
Normalize(mean=mean,std=std)])
transform_val = Compose([Resize(h,w),Normalize(mean=mean,std=std)])
PATH = ‘./data’
train_set =VOCSegmentation(PATH,year=‘2012’,download = True,image_set =‘train’,transforms=transform_train)
val_set = VOCSegmentation(PATH,year=‘2012’,download = True,image_set =‘val’,transforms=transform_val)
for item in train_set:
print(item)
break

call() takes 1 positional argument but 3 were given