相同点:
都是线性运算,可以看成矩阵相乘,感受野都为1
不同点:
pytorch中初始化方案不同,nn.Conv有更好的初始化
速度不同,Linear的速度要比nn.Conv快一个数量级,因为Linear是用高效的矩阵相乘实现的,而Conv是卷积核移动实现的
输入尺寸不同,Conv是[batch, input_channel, H, W,…],linear是[batch, …, input_channel]但这一点其实不重要
linear速度快很多,如果tensor的尺寸方便调整的话还是建议用linear。
参考链接:
https://stackoverflow.com/questions/55576314/conv1d-with-kernel-size-1-vs-linear-layer