Python mat1尺寸1必须与mat2尺寸0匹配-PyTorch

Python mat1尺寸1必须与mat2尺寸0匹配-PyTorch,python,pytorch,conv-neural-network,Python,Pytorch,Conv Neural Network,我是PyTorch的新手,不断收到错误信息mat1 dim1必须与mat1 dim0匹配 这是我的网络代码 class Net(Module): def __init__(self): super(Net, self).__init__() self.cnn_layers = Sequential( Conv1d(4,4,kernel_size=2, stride=1, padding=1),

我是PyTorch的新手,不断收到错误信息
mat1 dim1必须与mat1 dim0匹配

这是我的网络代码

class Net(Module):
    def __init__(self):
        super(Net, self).__init__()
        
        self.cnn_layers = Sequential(
            Conv1d(4,4,kernel_size=2, stride=1, padding=1),
            BatchNorm1d(4),
            ReLU(inplace=True),
            MaxPool1d(kernel_size=2,stride=1),
        )
        
        self.linear_layers = Sequential(
            Linear(8267*4,2)
        )
        
    def forward(self, x):
        print(x.shape)
        x = self.cnn_layers(x)
        print(x.shape)
        x = self.linear_layers(x)
        return x
打印语句的位置为:

torch.Size([8267, 4, 1])
torch.Size([8267, 4, 1])

有什么帮助/建议吗?

假设
8267
是您的批量大小。CNN的输出为
8267x4x1
。因此,您首先需要将
dim=1
dim=2
展平为单个维度,以获得形状
8267x4
。然后下一层(密集)将需要
4个
神经元

self.cnn_layers = Sequential(
    Conv1d(4, 4, kernel_size=2, stride=1, padding=1),
    BatchNorm1d(4),
    ReLU(inplace=True),
    MaxPool1d(kernel_size=2, stride=1))
    
self.linear_layers = Sequential(
    Flatten(),
    Linear(4, 2))