You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch运行IoU单元测试报float与function不支持<=比较如何修复

错误原因
  • Python大小写敏感,你定义的函数名为IoU,函数内部将计算得到的交并比数值存储到了全大写的IOU变量中,但最终返回的是和函数名完全一致的IoU,相当于直接返回了函数对象本身,而非计算得到的浮点数值。
  • 单元测试尝试将返回的函数对象和浮点型阈值做大小比较,因此触发了对应的类型错误。
修复方案

仅修改IoU函数的返回值,将返回对象改为存储计算结果的变量即可,无需调整单元测试的任何内容,修复后的代码如下:

import torch
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

也可以选择将变量名与返回值统一,修改效果一致:

import torch
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

内容的提问来源于stack exchange,提问作者Black Beard 53

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:54:03