https://pytorch.org/docs/stable/generated/torch.nn.Conv3d.html#conv3d 描述了在 3D CNN 上做卷积的输入是 (N,Cin,D,H,W)。想象一下,如果我有一系列要传递给 3D CNN 的图像。我说得对吗:
我问的原因是,当我堆叠图像张量时:a = torch.stack([img1, img2, img3, img4, img5])
我得到 torch.Size([5, 3, 396, 247])
的形状,因此必须将我的张量重塑为 torch.Size([3, 5, 396, 247])
以便该数字通道的数量会先行还是在 Dataloader 内无关紧要?
请注意,Dataloader 会自动添加一个对应于 N 的维度。
答案 0 :(得分:1)
是的,这很重要,您需要确保维度排序正确(假设您使用 ByteStream
的默认整理功能)。一种方法是使用 DataLoader
而不是默认的 dim=1
来调用 torch.stack
。例如
dim=0
导致 a = torch.stack([img1, img2, img3, img4, img5], dim=1)
为所需的 a
形状。