This is the model I m referring
class CNN_spec(torch.nn.Module):
def __init__(self, num_classes=7):
super(CNN_spec, self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(1, 64, kernel_size=3,stride=1),
nn.BatchNorm2d(64),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2, stride=2))
self.layer2 = nn.Sequential(
nn.Conv2d(64, 64, kernel_size=3,stride=1),
nn.BatchNorm2d(64),
nn.ReLU(),
nn.MaxPool2d(kernel_size=4, stride=4))
self.layer3 = nn.Sequential(
nn.Conv2d(64, 128, kernel_size=3,stride=1),
nn.BatchNorm2d(128),
nn.ReLU(),
nn.MaxPool2d(kernel_size=4, stride=4))
self.layer4 = nn.Sequential(
nn.Conv2d(128, 128, kernel_size=3,stride=1),
nn.BatchNorm2d(128),
nn.ReLU(),
nn.MaxPool2d(kernel_size=4, stride=4))
self.layer5 = nn.LSTM(128,1000 )
self.emotion_layer = nn.Linear(2000,num_classes)
def forward(self,inputs):
out = self.layer1(inputs)
out = self.layer2(out)
out = self.layer3(out)
out = self.layer4(out)
out = out.permute(0, 2, 1)
out, (final_hidden_state, final_cell_state) = self.layer5(out)
#out = out[:, -1, :].reshape(out.shape[0], 1, out.shape[2])
mean = torch.mean(out, 1)
std = torch.std(out, 1)
stat = torch.cat((mean, std), 1)
pred_emo = self.emotion_layer(stat)
return pred_emo
The error is : number of dims don’t match in permute.
Any suggestions