什么可能导致此错误?
追溯指向torch \ tensor.py的
iter函数。
Traceback (most recent call last):
File "train.py", line 108, in <module>
loss, accuracy = lossLayer(pred2, targetBatch)
File "C:\Users\PC\anaconda3\lib\site-packages\torch\tensor.py", line 462, in __iter__
raise TypeError('iteration over a 0-d tensor')
TypeError: iteration over a 0-d tensor
nn.CrossEntropyLoss
仅返回一个torch.Tensor
,而不是一对(它不返回精度)。因此,当您尝试将其值分配给两个变量loss, accuracy
时,python会尝试对该张量变量进行迭代,因此会出现错误消息。只需使用loss = lossLayer(pred2, targetBatch)
。