【发布时间】:2021-07-01 21:27:57
【问题描述】:
我正在尝试创建一个transform,它可以对批次中的每个图像的补丁进行洗牌。
我的目标是以与torchvision 中其他转换相同的方式使用它:
trans = transforms.Compose([
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
ShufflePatches(patch_size=(16,16)) # our new transform
])
更具体地说,输入是一个BxCxHxW 张量。我想将批次中的每个图像拆分为大小为 patch_size 的非重叠补丁,将它们打乱,然后重新组合成单个图像。
给定图像(大小为224x224):
使用ShufflePatches(patch_size=(112,112)) 我想生成输出图像:
我认为解决方案与torch.unfold 和torch.fold 有关,但没有进一步解决。
任何帮助将不胜感激!
【问题讨论】:
标签: python deep-learning computer-vision pytorch torchvision