问题根源
这种情况往往出现在使用pytorch训练模型过程中,调用topk
方法的时候。问题根源是,传入的参数超过了该dimension的限制。
例如tmp的shape是[4,128,1]
,而调用了tmp.topk(129,dim=1)
,显然129>128是不合理的。
另一种可能是,dataloader在load数据的时候,最后一个batch只剩了一个1个数据,而由于某些squeeze
的操作导致传回的结果d的shape不是[1,128,1]
,而是[1,128]
或者[128]
。这种情况下,出现了和上面相同的错误。
总之,这种错误肯定是由于传入的参数大于给定的dimension的总数据量。