折叠连续的线性层

Collapsing consecutive linear layers

我有一个包含 3 个连续线性层(卷积)的神经网络,中间没有激活函数。在训练网络并获得权重后,我想将所有 3 层折叠为一层。

当每一层都有不同的内核大小和步幅时,如何在实践中做到这一点?

图层如下:

  1. 具有 3x3 内核、5 个输入通道和 5 个输出通道(大小为 3x3x5x5 的张量)、步幅为 1 和填充 "same"
  2. 的卷积层
  3. 具有 5x5 内核、5 个输入通道和 50 个输出通道(大小为 5x5x5x50 的张量)、步幅为 2 和填充 "same"
  4. 的卷积层
  5. 具有 3x3 内核、50 个输入通道和 50 个输出通道(大小为 3x3x50x50 的张量)、步幅为 1 和填充 "same"
  6. 的卷积层

提前致谢

置换第一层内核的维度,使输入通道处于 "mini-batch" 维度,输出通道处于 "channels" 维度。将第二层应用于它,就好像它是图像一样。然后将第三层应用于该结果。最终结果是 "collapsed" 层的内核。

使用"full"填充所有这些操作。如果这大致正确(除了填充),请尝试修复填充(可能在上次操作中应该是 "same")。