具体报错位置:
在使用softmax函数时需要保证矩阵是二维的,但是在训练过程中会出现batchsize=1的情况即整个output矩阵的维度为
[batch_size =1,maxlen,1],
如果不指定 output.squeeze 的维度就会得到
[maxlen]的维度导致报错
将原来的代码改为
output = self.out(output) print(output.shape) output = output.squeeze(dim=2) output = F.softmax(output, dim=1) 即可