logo

PyTorchで「RuntimeError: Boolean value of Tensor with more than one value is ambiguous」エラーの解決方法 📂機械学習

PyTorchで「RuntimeError: Boolean value of Tensor with more than one value is ambiguous」エラーの解決方法

エラー

損失関数nn.MESLoss()を使用したとき、次のようなエラーが発生した。

RuntimeError                              Traceback (most recent call last)
<ipython-input-75-8c6e9ea829d4> in <module>
----> 1 nn.MSELoss(y_pred, y)

2 frames
/usr/local/lib/python3.8/dist-packages/torch/nn/_reduction.py in legacy_get_string(size_average, reduce, emit_warning)
     33         reduce = True
     34 
---> 35     if size_average and reduce:
     36         ret = 'mean'
     37     elif reduce:

RuntimeError: Boolean value of Tensor with more than one value is ambiguous

解決方法1

コードを次のように変更すると解決する。

nn.MSELoss(y_pred, y) $\to$ nn.MSELoss()(y_pred, y)

環境

  • Colab
  • Version: Python 3.8.10, PyTorch1.13.1+cu116