Python mat1尺寸1必须与mat2尺寸0匹配-PyTorch
我是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),
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))