最近在看Deeplab系列的论文,文中提到了语义分割领域的一个难题是:将图片输入网络之前需要resize成统一大小,但是resize的话会造成细节信息的损失,所以想要网络处理任意大小的图片输入。我之前训练的U-net网络都是resize成224*224大小,于是我想实验一下不resize,直接将数据经过Totensor(),归一化之后直接丢进网络,但是确报错了
查了一下发现,在Pytorch中
1.DataLoader中的默认collate_fn假设每个样本形状相同,直接堆叠(stack)
2.模型的输入层也通常会假设输入是一个固定形状的tensor
3.很多图像操作函数(如torchvision.transforms)也要求图像形状相同
所以这让我很疑惑,这种处理任意大小的图片在训练过程中该如何实现呢?还是说中只是在test的时候能够处理任意大小的图片就行,因为不需要Dataloader了。