最近使用pytorch1.4版本訓練網絡,在運用loss.data()時,目的時爲了讓loss函數的值相加,但出現問題IndexError: invalid index of a 0-dim tensor.問題解決辦法。
經查找,發現問題的原因
loss += loss.data[0] 是pytorch0.3.1版本代碼,在0.4-0.5版本的pytorch會出現警告,不會報錯,但是0.5版本以上的pytorch就會報錯,總的來說是版本更新問題.
該問題的解決辦法:
第一種:
如果不想更改代碼,則需要安裝低版本的pytorch。
但不推薦這種做法。因爲低版本的在現在很多開源新算法中已經被拋棄了。
第二種:
將代碼中的
loss+=loss.data[0]
修改爲:
train_loss+=loss.item()
改完之後就會愉快的進行網絡的訓練了。