类型错误:'image'出现意外的关键字参数



我得到TypeError: get_train_augs()得到一个意外的关键字参数'image',我有我的增强函数如下

扩充功能

def get_train_augs():
return A.Compose([
A.Resize(IMAGE_SIZE,IMAGE_SIZE),
A.HorizontalFlip(p = 0.5),
A.VerticalFlip(p = 0.5),
])
def get_valid_augs():
return A.Compose([
A.Resize(IMAGE_SIZE,IMAGE_SIZE),

])

自定义分割数据集类

class SegmentationDataset(Dataset):
def __init__(self, df, augmentations=None):
self.df = df
self.augmentations = augmentations

def __len__(self):
return len(self.df)
def __getitem__(self,idx):
row = self.df.iloc[idx]
image_path = row.images
mask_path = row.masks
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
mask = cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE) # (h, w, c)
mask = np.expand_dims(mask, axis = -1)
if self.augmentations is not None:
data = self.augmentations(image = image, mask = mask)
image = data['image']
mask = data['mask']
# (h, w, c) -> (c, h, w)
image = np.transpose(image,(2,0,1)).astype(np.float32)
mask = np.transpose(mask,(2,0,1)).astype(np.float32)
image = torch.Tensor(image)/255.0
mask = torch.round(torch.Tensor(mask)/255.0)
return image, mask

当我像这样调用trainset时,我得到了一个错误:

trainset = SegmentationDataset(train_df, get_train_augs)
validset = SegmentationDataset(valid_df, get_valid_augs)

调用随机索引

idx = 3
image, mask = trainset[idx]
我得到的错误是:
TypeError                                 Traceback (most recent call last)
<ipython-input-28-9b83781b7e3d> in <module>()
1 idx = 3
2 
----> 3 image, mask = trainset[idx]
4 
5 helper.show(image, mask)
<ipython-input-25-39872478644d> in __getitem__(self, idx)
20 
21     if self.augmentations is not None:
---> 22       data = self.augmentations(image = image, mask = mask)
23 
24       image = data['image']
TypeError: get_train_augs() got an unexpected keyword argument 'image'

try

trainset = SegmentationDataset(train_df, get_train_augs())
validset = SegmentationDataset(valid_df, get_valid_augs())