![](/img/trans.png)
[英]TypeError: forward() got an unexpected keyword argument 'input_ids'
[英]TypeError: CrossEntropyLoss.forward() got an unexpected keyword argument 'weight'
我收到此錯誤:
File "/nitorch/trainer.py", line 110, in __init__
nn.CrossEntropyLoss(outputs, labels, weight = weights)
File "/home/gonzalo/miniconda3/envs/cnn2/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
TypeError: CrossEntropyLoss.forward() got an unexpected keyword argument 'weight'
我試圖通過使用 torch.nn.CrossEntropyLoss 給每個 class 的手動重新調整權重來獲得損失: loss = nn.CrossEntropyLoss(outputs, labels, weight = weights)
其中 weights 是權重的張量,其長度與輸出相同和標簽。
torch.nn.CrossEntropyLoss 的文檔說它接受權重以重新縮放類https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html
會發生什么?
您首先需要使用 class 權重創建一個nn.CrossEntropyLoss
實例,然后使用 output 和標簽調用它:
loss = nn.CrossEntropyLoss(weight=weights)
output = loss(outputs, labels)
所有pytorch 文檔都在底部包含示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.