我正在嘗試計算聯合交集 (IOU) 分數。這是我的代碼實作,效果很好。
def IoU(predict: torch.Tensor, target: torch.Tensor):
i = (predict & target).float().sum()
u = (predict | target).float().sum()
x = i/u
IOU = x.item()
return IoU
但是當我運行我的單元測驗時:
def test_IoU1():
pred = torch.tensor([[1, 0], [1, 0]])
target = torch.tensor([[1, 0], [1, 1]])
iou = IoU(pred,target)
assert 0.66 <= iou
assert iou <= 2/3
我得到:
TypeError: '<=' not supported between instances of 'float' and 'function'

如何在不更改單元測驗中的任何內容的情況下解決此問題?謝謝
uj5u.com熱心網友回復:
在這個函式中
def IoU(predict: torch.Tensor, target: torch.Tensor):
i = (predict & target).float().sum()
u = (predict | target).float().sum()
x = i/u
IOU = x.item()
return IoU
您正在回傳IoU這是函式的名稱,我想您需要回傳IOU. 所以正確的方法是——
def IoU(predict: torch.Tensor, target: torch.Tensor):
i = (predict & target).float().sum()
u = (predict | target).float().sum()
x = i/u
IOU = x.item()
return IOU
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314776.html
