[英]How to use nn.conv2d to do the same function as nn.conv1d?
我正在努力在 FPGA 上部署 python CNN,我遇到了一個問題。
我有一個使用torch.conv1d
層 function 的 1d CNN,我正在使用的軟件不支持它: vitis-ai 1.3
。
我正在弄清楚是否有某種方法可以使用nn.conv2d
來代替nn.conv1d
做同樣的工作?
例如:
Conv1d(1, 32, 3, bias = True) => Conv2d(...
有沒有辦法做到這一點? (不會損失太多性能?)
謝謝你。
給定一維輸入,內核大小(n,1)
的二維卷積等效於內核大小(n,)
的一維卷積:
nn.Conv1d(in_channels, out_channels, n)
# for 1d input, is equivalent to:
nn.Conv2d(in_channels, out_channels, (n,1))
請注意,您必須unsqueeze(-1)
輸入以使其具有正確的 2d 卷積形狀,但您可以通過應用 Squeeze squeeze(-1)
將 output 恢復為原始形狀:
F.conv1d(inputs, filters)
# is equivalent to:
F.conv2d(inputs.unsqueeze(-1), filters.unsqueeze(-1)).squeeze(-1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.