用于语义分割的Pytorch自定义随机裁剪

用于语义分割的Pytorch自定义随机裁剪,pytorch,torchvision,Pytorch,Torchvision,我正在尝试实现一个自定义数据集加载器。首先,我以(0.98,1,1)之间的相同比率调整图像和标签的大小,然后随机裁剪具有相同参数的图像和标签,以便将它们输入到NN中。然而,我从PyTorch函数得到一个错误。这是我的密码: 类随机裁剪(对象): def uuu init(self,size,padding=None,pad_if_needed=True,fill=0,padding_mode='constant'): self.size=大小 self.padding=填充 self.pad\u

我正在尝试实现一个自定义数据集加载器。首先,我以(0.98,1,1)之间的相同比率调整图像和标签的大小,然后随机裁剪具有相同参数的图像和标签,以便将它们输入到NN中。然而,我从PyTorch函数得到一个错误。这是我的密码:

类随机裁剪(对象):
def uuu init(self,size,padding=None,pad_if_needed=True,fill=0,padding_mode='constant'):
self.size=大小
self.padding=填充
self.pad\u if\u needed=pad\u if\u needed
self.fill=填充
self.padding\u mode=padding\u mode
@静力学方法
def get_参数(img,输出尺寸):
w、 h=img.size
th,tw=输出大小
如果w==tw和h==th:
返回0,0,h,w
i=random.randint(0,h-th)
j=random.randint(0,w-tw)
返回i,j,th,tw
定义调用(自身,数据):
img,掩码=数据[“图像”],数据[“掩码”]
#如果需要,请填充宽度
if self.pad\u if\u需要且img.size[0]
以下是错误:

AttributeError: 'Image' object has no attribute 'dim'

我错误地导入了nn.functional.pad而不是transforms.functional.pad。换了以后一切都很顺利