快速结论:这个报错通常出现在使用 TimmBackbone 并把 timm 模型当骨干网络(如 Mask2Former、ViT 等)时,旧版 Transformers 会强制读取被包装模型的 return_layers 属性,而 timm 新引入的 FeatureGetterNet 并没有该属性。优先排查 Transformers 版本是否已包含从 feature_info 推导层映射的修复(v4.41.0 起)。
适用环境:Issue 中已确认的工具为 Transformers,涉及 timm 的 forward_intermediates 特性;帖子未提供操作系统、Python、CUDA、显卡等具体版本信息。
最快修复方案:升级 Transformers 到 v4.41.0 或更高版本(对应 #29038),使 TimmBackbone 从 feature_info 派生根层映射,而不再从被包装模型读取 return_layers。
注意事项:升级后,output_hidden_states=True 对这些骨干仍可能抛出 IndexError,因为 FeatureGetterNet 上的 return_layers 赋值是空操作;该遗留问题需要单独 issue 跟进。
问题场景
用户在使用 Transformers 的 Mask2FormerModel(通过 Mask2FormerConfig(use_timm_backbone=True, backbone="vit_small_patch16_224"))或任何依赖 TimmBackbone 的模型时触发此报错。原因在于 TimmBackbone 假设包裹的 timm 模型实现过 return_layers,而 timm 新推出的 forward_intermediates 特征提取封装(如 FeatureGetterNet)并未提供该属性。
报错原文
AttributeError: 'FeatureGetterNet' object has no attribute 'return_layers'
原因分析
旧版 TimmBackbone 在 __init__/forward 中直接读取 self._backbone.return_layers,用于构建 _return_layers、_all_layers 并控制隐藏状态输出。timm 的新封装(如 FeatureGetterNet,由 forward_intermediates 特性引入)不暴露 return_layers,因此访问该属性时抛出 AttributeError。维护者确认的修复方向是:不再从被包装模型读取 return_layers,改为从 feature_info 推导层映射。
环境排查
- 确认当前 Transformers 版本:需要 ≥ v4.41.0(包含 #29038 的修复)。
- 确认 timm 版本:若使用
forward_intermediates相关封装,需为新版 timm;Issue 中讨论过可能需要从 timm 的 main 分支安装,直到新版本发布。 - 确认使用的模型/节点:是否通过
use_timm_backbone=True或TimmBackbone加载骨干。 - 确认是否设置
output_hidden_states=True:该场景即使升级后仍已知会抛IndexError。 - Issue 未提供 Python、PyTorch、CUDA、显卡等具体版本,无需补写。
解决步骤
- 升级 Transformers 到 v4.41.0 或更新版本,以获取 #29038 中对
TimmBackbone的修复(改为从feature_info派生层映射)。 - 若仍报错,检查 timm 是否为包含
forward_intermediates的较新版本;在 Issue 讨论中曾建议安装 timm 的 main 分支,直到新版发布(可优先尝试)。 - 重新运行引发报错的代码,例如
Mask2FormerModel(config=Mask2FormerConfig(use_timm_backbone=True, backbone="vit_small_patch16_224")),验证是否已不再出现return_layers缺失。 - 若使用了
output_hidden_states=True,请暂时关闭该选项;该场景下的IndexError属于未解决的遗留问题,需单独开 issue 跟进。
验证方法
在升级后的环境里重新运行原先失败的 Mask2FormerModel 构造代码。若不再出现 AttributeError: 'FeatureGetterNet' object has no attribute 'return_layers',即视为修复生效。维护者确认在 current main 上该代码片段可以正常运行。
参考来源
huggingface/transformers #30307
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[Bug] Hybrid Search in dataset settings cannot persist reranking_enable=true when the retrieval method card is already selected, so rerank s](https://www.chat-gpts.plus/wp-content/uploads/2026/09/42553-e2af1a92-768x403.jpg)