python - 向CNN输入固定长度的帧序列
问题描述
我希望我的 pytorch CNN 将长度为 32x32 RGB 图像的序列作为输入,这些SEQ_LEN
图像沿通道维度连接。因此,网络的单个输入具有 shape (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, 3, 32, 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
) 会更合适。正如您从它的文档中看到的那样,它的输入形状是您所期望的。
推荐阅读
- swift - SwiftUI - 在工作表中有一个不可滚动的固定继续按钮
- r - 如何协调 afex 混合效果模型输出与 sjPlot 可视化
- javascript - 如何将类绑定到检查的输入的父级?
- python - 以编程方式检测命令是否可以作为模块运行
- azure - 名称服务器 ns3-02.azure-dns.org。应该是正确的格式
- c++ - 具有结构的 glGetUniformLocation 问题
- c# - LiteDB.LiteException:文件不是有效的 LiteDB 数据库格式或包含无效的密码
- php - 如何在php中显示当前日期?
- javascript - REACT NATIVE:滚动视图不断弹回顶部不滚动
- pine-script - tradingview pinescript 中的输入“语句块”错误不匹配