Deep learning 将二维转换为线性

Deep learning 将二维转换为线性,deep-learning,pytorch,Deep Learning,Pytorch,说我有一个conv2d层,我知道这是线性层的一个特例,如何将conv2d层转换为线性层?(小火炬) 例如: Conv2d(96, 1000, kernel_size=torch.Size([10, 10]), stride=(1, 1)) 我不会把卷积层称为“线性层的特例”。但对于您的问题:您的意思是如何将conv层输出展平到线性层?由于conv.层和向量线性层需要矩阵,因此必须将矩阵展平,例如,形状(m,n)的矩阵将成为向量(m*n,1)。以下是如何在Pytorch中实现这一点: x=nn

说我有一个conv2d层,我知道这是线性层的一个特例,如何将conv2d层转换为线性层?(小火炬) 例如:

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

我不会把卷积层称为“线性层的特例”。但对于您的问题:您的意思是如何将conv层输出展平到线性层?由于conv.层和向量线性层需要矩阵,因此必须将矩阵展平,例如,形状(m,n)的矩阵将成为向量(m*n,1)。以下是如何在Pytorch中实现这一点:


x=nn.Conv2d(961000,内核大小=torch.size([10,10]),步长=(1,1))
x=x.view(-1,x.size()[1]*x.size()[2]*x.size()[3])

现在可以将x传递到平坦层中。希望有帮助

实际上,我想用线性替换conv2d层,但仍然具有相同的效果“替换”是什么意思?卷积确实可以表示为矩阵乘法,例如。从我所看到的,答案还提供了一些如何在代码中实现这一点的方法。