3D CNN在一系列图像上的输入形状应该是什么?



https://pytorch.org/docs/stable/generated/torch.nn.Conv3d.html#conv3d描述在3D CNN上做卷积的输入为(N,Cin,D,H,W)。想象一下,如果我有一个图像序列,我想传递给3D CNN。我说的对吗:

  1. N→序列数(小批)
  2. C<子>→通道数(3为rgb)
  3. D→序列中的图像数
  4. H→序列中一张图像的高度
  5. W→序列中单幅图像的宽度

我问的原因是,当我堆叠图像张量时:a = torch.stack([img1, img2, img3, img4, img5])我得到torch.Size([5, 3, 396, 247])的形状,所以它是强制性的重塑我的张量到torch.Size([3, 5, 396, 247])以便通道的数量会先去或者它在数据加载器内无关紧要?

注意,Dataloader会自动增加一个维度,对应于n。

是的,这很重要,您需要确保维度是正确排序的(假设您使用DataLoader的默认排序函数)。一种方法是使用dim=1而不是默认的dim=0来调用torch.stack。例如

a = torch.stack([img1, img2, img3, img4, img5], dim=1)

导致a[3, 5, 396, 247]的理想形状。

最新更新