将Conv2d转换为线性

问题描述

我有一个conv2d图层,我知道它是线性图层的特例,如何将Conv2d图层转换为线性图层? (火炬) 例如以下内容

Conv2d(96,1000,kernel_size=torch.Size([10,10]),stride=(1,1))

解决方法

我不会将卷积层称为“线性层的特殊情况”。但要问的问题是:您是指如何将conv图层的输出平坦化为线性图层?由于您需要转换矩阵。层和向量线性层,必须将矩阵展平,例如,形状为(m,n)的矩阵将成为向量(m * n,1)。这是在Pytorch中执行的操作:


x = nn.Conv2d(96,1000,kernel_size=torch.Size([10,10]),stride=(1,1))
x = x.view(-1,x.size()[1] * x.size()[2] * x.size()[3])
现在可以将

x传递到平坦层。希望能有所帮助!