【问题标题】:What should be the input shape for 3D CNN on a sequence of images?3D CNN 在图像序列上的输入形状应该是什么?
【发布时间】:2021-02-14 19:04:00
【问题描述】:

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

  1. N -> 序列数(小批量)
  2. Cin -> 通道数(RGB 为 3)
  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 里面没关系?

请注意,Dataloader 会自动添加一个对应于 N 的维度。

【问题讨论】:

    标签: python pytorch conv-neural-network dataloader


    【解决方案1】:

    是的,这很重要,您需要确保尺寸正确排序(假设您使用DataLoader 的默认整理功能)。一种方法是使用dim=1 而不是默认的dim=0 调用torch.stack。例如

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

    导致a 成为[3, 5, 396, 247] 的所需形状。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-21
      • 2021-04-17
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      相关资源
      最近更新 更多