错误:“浮点”未实现“按位\u和\u cpu”

2024-06-09 08:24:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望为ResNet50(预训练)模型生成联合交集(IoU)分数。以下是我计算IoU分数的函数:

def IoU(predict: torch.Tensor, target: torch.Tensor):

i = (predict & target).double().sum()
u = (predict | target).double().sum()
x = (i/u)
IoU = x.item()

return IoU

下面是实现IoU分数的函数:

def applyIoU(model, dataset):

IoU_score = []

for i in range(len(dataset)):
    
    image,true_mask = dataset[i]
    x_tensor = torch.from_numpy(image).to('cpu').unsqueeze(0)
    pred_mask = model.predict(x_tensor)
    true_mask = torch.from_numpy(true_mask).to('cpu').unsqueeze(0)
    IoU_score = IoU(pred_mask, true_mask)
    
assert type(true_mask) == torch.Tensor

return IoU_score

当我运行代码时,我得到以下错误。有没有其他方法可以不使用获得借条分数&|Pytorch中的操作员?谢谢

    156 
--> 157     i = (predict & target).double().sum()
    158     u = (predict | target).double().sum()
    159     x = (i/u)

RuntimeError: "bitwise_and_cpu" not implemented for 'Float

Tags: 函数truetargetdefmasktorchcpupredict