t1 = torch.tensor([1,2,3])
t2 = torch.tensor([4,5,6])
t3 = torch.tensor([7,8,9])
torch.stack((t1,t2,t3),dim=1)
Run Code Online (Sandbox Code Playgroud)
在实现 torch.stack() 时,我无法理解如何对不同的暗淡进行堆叠。这里对列进行了堆叠,但我无法理解它是如何完成的细节。处理 2-d 或 3-D 张量变得更加复杂。
tensor([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个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
])
Run Code Online (Sandbox Code Playgroud)
更具体地说,输入是BxCxHxW
张量。我想将批次中的每个图像分割成大小为 patch_size 的不重叠的补丁,将它们打乱,然后重新组合成单个图像。
给定图像(尺寸为224x224
):
使用ShufflePatches(patch_size=(112,112))
我想生成输出图像:
torch.unfold
我认为解决方案与和相关torch.fold
,但没有取得任何进展。
任何帮助,将不胜感激!