You need to enable JavaScript to run this app. UNet调用TF.resize报TypeError:传入torch.Tensor而非要求的PIL图像
优惠活动
大模型
产品
解决方案
定价
更多

UNet调用TF.resize报TypeError:传入torch.Tensor而非要求的PIL图像

问题描述
  • 基于PyTorch搭建的UNet代码包含DoubleConv基础卷积模块、下采样特征提取路径、带跳跃连接的上采样恢复路径、瓶颈连接层
  • 测试逻辑为生成维度(3, 1, 161, 161)的随机张量作为网络输入,校验输出张量形状与输入是否一致
  • 运行代码时抛出类型错误,错误定位在上采样阶段对齐特征尺寸的代码行:x = TF.resize(x, size=skip_connection.shape[2:]

完整报错信息:
raise TypeError('img should be PIL Image. Got {}'.format(type(img))) TypeError: img should be PIL Image. Got <class 'torch.Tensor'>

根因定位
  • 此处导入的TF为torchvision.transforms.functional模块,旧版本下该模块的resize接口仅支持PIL Image类型输入,内置了严格的输入类型校验
  • UNet前向传播过程中传入TF.resize的参数x是卷积、下采样输出的Tensor特征图,并非PIL格式图像,因此触发类型校验失败
修复方案
  • 优先使用PyTorch原生的Tensor适配尺寸变换接口替换现有代码,无额外依赖:
    # 导入torch.nn.functional后,替换原resize行
    x = torch.nn.functional.interpolate(x, size=skip_connection.shape[2:], mode='bilinear', align_corners=False)
    
  • 若需保留使用TF.resize的逻辑,可将torchvision升级至0.10及以上版本,该版本的TF.resize已支持Tensor类型输入,需注意匹配对应PyTorch版本避免兼容问题

内容的提问来源于stack exchange,提问作者smriti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 05:36:03