Last Updated on 2021-07-05 by Clay
在 PyTorch 當中,這是非常常見的一個問題。
RuntimeError: bool value of Tensor with more than one value is ambiguous
最常見的地方在於 Loss Function 的使用,通常是誤用了 Class 作為輸入。如果得到了這個報錯,可以檢查是否 Loss function 的地方有誤用。
看個會發生的報錯案例:
以上這是我的 Loss Function,看起來沒什麼問題,對吧?然而事實並非如此。
nn.NLLLoss() 是一個 Class,我們需要將其建立為物件才可以輸入『預測結果』與『正確答案』。
那麼,在這種情況的寫法是什麼呢?
是這樣的,我需要小心警告自己別再犯同樣的錯誤了。目前為止,我已經因為這個報錯上網找答案三四次了。
(順帶一提,多分類的輸出只需要使用 LogSoftmax() 加上 NLLLoss() 即可)