【问题标题】:Albumentations error : __call__() got an unexpected keyword argument 'force_apply'Albumentations 错误:__call__() 得到了一个意外的关键字参数 \'force_apply\'
【发布时间】:2022-08-19 16:50:55
【问题描述】:

我尝试使用allementations制作一个简单的数据加载器:

train_transforms = A.Compose(
    [
        A.GaussNoise(always_apply=False, p=0.4, var_limit=(0, 70.0)),
        A.Blur(always_apply=False, p=0.3, blur_limit=(3, 7)),
        A.RandomResizedCrop(always_apply=False, p=0.2, height=128, width=128, scale=(0.7, 1.0),
                          ratio=(0.75, 1.3333333333333333), interpolation=0),
        A.RGBShift(r_shift_limit=15, g_shift_limit=15, b_shift_limit=15, p=0.5),
        A.RandomBrightnessContrast(p=0.5),
        transforms.ToTensor()
    ]
)

class SixKDataset(Dataset):
    def __init__(self, data_path, transform=None):
        self.data = np.load(data_path, allow_pickle=True)
        self.transform = transform

    def __len__(self):
        return self.data.shape[0]

    def __getitem__(self, idx):
        ret = np.squeeze(self.data[idx, 0, :, :, :]), np.squeeze(self.data[idx, 1, :, :, :])
        if self.transform:
            image1 = self.transform(image = ret[0])[\'image\']
            image2 = self.transform(image = ret[1])[\'image\']
            return image1, image2
        return np.squeeze(ret[0]), np.squeeze(ret[1])

但是我收到此错误: 类型错误:称呼() 得到了一个意外的关键字参数 \'force_apply\'

我不知道如何解决这个问题

标签: pytorch albumentations


【解决方案1】:

我相信您需要像这样定义其他目标:

    train_transforms = A.Compose(
    [
        A.GaussNoise(always_apply=False, p=0.4, var_limit=(0, 70.0)),
        A.Blur(always_apply=False, p=0.3, blur_limit=(3, 7)),
        A.RandomResizedCrop(always_apply=False, p=0.2, height=128, width=128, scale=(0.7, 1.0),
                          ratio=(0.75, 1.3333333333333333), interpolation=0),
        A.RGBShift(r_shift_limit=15, g_shift_limit=15, b_shift_limit=15, p=0.5),
        A.RandomBrightnessContrast(p=0.5),
        transforms.ToTensor()
    ], additional_targets={'image0': 'image'}
)

然后使用它们获取项目像这样:

def __getitem__(self, idx):
    ret = np.squeeze(self.data[idx, 0, :, :, :]), np.squeeze(self.data[idx, 1, :, :, :])
    if self.transform:
        transformed = transform(image=ret[0], image0=ret[1])
    return np.squeeze(transformed[image]), np.squeeze(transformed[image0])

https://albumentations.ai/docs/examples/example_multi_target/ 看这里

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2016-12-08
    • 2020-06-28
    相关资源
    最近更新 更多