問題根源
這種情況往往出現在使用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的總數據量。