OpenVINO开发小组
直播中

王尚岱

9年用户 1616经验值
擅长:电源/新能源
私信 关注
[问答]

从Open Model Zoo下载的FastSeg大型公共预训练模型,无法导入名称是怎么回事?




    • 从 Open Model Zoo 下载的 FastSeg 大型公共预训练模型。
    • 运行 converter.py 以将 FastSeg 大型模型转换为中间表示 (IR):
      python3 converter.py --name fastseg-large
    • 收到错误:无法导入名称'container_abcs' from 'torch._six'

回帖(2)

龙旭

2025-3-5 11:21:27

  • 卸载 分组和Vision:
    pip uninstall torch torchvision
  • 安装 兼容版本的 Evaluat andVision:
    pip install torch==1.8.0 torchvision==0.9.0
  • 转换 FastSeg -large 模型:
    python3 converter.py --name fastseg-large
举报

djelje

2025-3-5 16:49:12

这个错误通常是由于 PyTorch 版本不兼容导致的。torch._six 是 PyTorch 早期版本中的一个模块,但在较新的版本中,torch._six 已经被移除或重构,导致 container_abcs 无法导入。


解决方案




  1. 降级 PyTorch 版本
    如果你使用的是较新的 PyTorch 版本(例如 1.9 或更高版本),可以尝试降级到 1.8 或更早的版本,因为这些版本可能仍然包含 torch._six 模块。


    你可以使用以下命令降级 PyTorch:


    pip install torch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0



  2. 修改代码
    如果你不想降级 PyTorch,可以尝试修改 converter.py 文件,将 from torch._six import container_abcs 替换为 from collections import abc as container_abcs


    例如:


    # 原代码
    from torch._six import container_abcs

    # 修改为
    from collections import abc as container_abcs

    这是因为 torch._six.container_abcs 实际上是对 collections.abc 的封装,所以直接使用 collections.abc 是等价的。




  3. 使用 OpenVINO 的官方工具
    如果你使用的是 OpenVINO 的工具链,可以尝试使用 OpenVINO 提供的官方模型优化器(Model Optimizer)来转换模型,而不是依赖 converter.py


    mo.py --input_model your_model.onnx

    这将生成 OpenVINO 的中间表示(IR)文件。




总结


这个错误通常是由于 PyTorch 版本更新导致的。你可以通过降级 PyTorch 或修改代码来解决这个问题。如果可能的话,使用 OpenVINO 的官方工具来转换模型也是一个不错的选择。

举报

更多回帖

×
20
完善资料,
赚取积分