写代码用torch.nn时出现这个问题。对应着链接学习问题:https://www.cnblogs.com/ToryRegulus/p/17633208.html
去查看自己的代码,发现应该对应排除predictModel类的设计问题:
打印出来得:词的数目为255个,将每个词映射为长度为300的向量
再试着打印一下value_encoder,结果:Embedding(9677, 300)。按理说该解读为词的数目为9677个,将每个词映射为长度为300的向量。
然而程序运行是这样,那和predictModel的init这里应该没什么关系(可恶我不习惯调试,要不然还用一下下查找,累。)
然后偶然一次报错弹到了predictModel的forward函数,经过调试发现出现了如:处理后的节点词汇表为215,但实际出现了219这样的节点类型。
但是应该在词汇表处理那一步处理完了啊,于是判断出现这个是由程序运行中的错误和故障导致。
同时查看词袋算法计算词汇表可知,无重复词汇215(这个id2word)个:
同时证明这个219的确应该是错误产生的数据,但是还是没搞清楚为什么会出现这个数据。
再运行一遍出现218,我真的。
还曾经出现两个222,怎么说这个节点类型有可能是没查到随便给的溢出值,也有可能是原数据类型根本没有去重降到215。
然后我把两个num都改为原始数值,竟然就可以了,cool,但不知道为什么。