我正致力于在FPGA上部署python CNNs,我正面临着一个问题。
我有一个1DCNN,它使用torch.conv1d层功能,但我使用的软件vitis-ai 1.3不支持它。
我在想,是否有什么方法可以用nn.conv2d来代替nn.conv1d来做同样的工作呢?
例如:
Conv1d(1, 32, 3, bias = True) => Conv2d(... 有没有办法做到这一点?(不会损失太多性能?)
谢谢。
发布于 2021-04-08 16:23:51
给定1d输入,核大小的(n,1)的2d卷积等同于核大小(n,)的1d卷积
nn.Conv1d(in_channels, out_channels, n)
# for 1d input, is equivalent to:
nn.Conv2d(in_channels, out_channels, (n,1))注意,您必须对输入进行unsqueeze(-1),以使其具有正确的二维卷积形状,但您可以通过应用squeeze(-1)将输出返回到原始形状
F.conv1d(inputs, filters)
# is equivalent to:
F.conv2d(inputs.unsqueeze(-1), filters.unsqueeze(-1)).squeeze(-1)https://stackoverflow.com/questions/66994746
复制相似问题