gpt4 book ai didi

pytorch - 在 pytorch 中将 ImageFolder 与相册一起使用

转载 作者:行者123 更新时间:2023-12-05 03:37:50 26 4
gpt4 key购买 nike

我有一种情况,我需要将 ImageFolder 与 albumentations 库一起使用以在 pytorch 中进行扩充 - 自定义数据加载器不是一个选项。

为此,我很困惑,我无法让 ImageFolder 处理相册。我已经尝试过这些方法:

class Transforms:
def __init__(self, transforms: A.Compose):
self.transforms = transforms

def __call__(self, img, *args, **kwargs):
return self.transforms(image=np.array(img))['image']

然后:

    trainset = datasets.ImageFolder(traindir,transform=Transforms(transforms=A.Resize(32 , 32)))

其中 traindir 是一些带有图像的目录。然而,我得到了一个奇怪的错误:

RuntimeError: Given groups=1, weight of size [16, 3, 3, 3], expected input[1024, 32, 32, 3] to have 3 channels, but got 32 channels instead

而且我似乎无法找到一个可重现的示例来使简单的 aug pipleline 与 imagefolder 一起工作。

更新在@Shai 的推荐下,我现在这样做了:

class Transforms:
def __init__(self):
self.transforms = A.Compose([A.Resize(224,224),ToTensorV2()])

def __call__(self, img, *args, **kwargs):
return self.transforms(image=np.array(img))['image']
trainset = datasets.ImageFolder(traindir,transform=Transforms())

但我被扔了:

    self.padding, self.dilation, self.groups)
RuntimeError: Input type (torch.cuda.ByteTensor) and weight type (torch.cuda.FloatTensor) should be the same

最佳答案

您需要使用 ToTensorV2转换为最后一个:

trainset = datasets.ImageFolder(traindir,transform=Transforms(transforms=A.Compose([A.Resize(32 , 32), ToTensorV2()]))

关于pytorch - 在 pytorch 中将 ImageFolder 与相册一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69151052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com