问题描述
我希望我的pytorch CNN将沿通道尺寸串联的长度为SEQ_LEN
的32x32 RGB图像序列作为输入。因此,网络的单个输入的形状为(32,32,3,SEQ_LEN)
。我应该如何定义CNN输入层?
常用方式
SEQ_LEN = 10
input_conv = nn.Conv2d(in_channels=SEQ_LEN,out_channels=32,kernel_size=3)
BATCH_SIZE = 64
frames = np.random.randint(0,255,size=(BATCH_SIZE,SEQ_LEN,32))
frames_tensor = torch.tensor(frames)
input_conv(frames_tensor)
给出错误
RuntimeError:对于4维权重[32,10,3,3]预期需要4维输入,但是却得到大小为[64、10、3、32、32]的5维输入
解决方法
给出您的评论,听起来您的数据根本不适合 2D 卷积神经网络,而 3D 一个(Conv3d
会更合适。从其文档中可以看到,它的输入形状就是您所期望的。