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

Colab运行TF2目标检测报optimizers无experimental属性错误

问题背景
  • 运行环境:Google Colab平台,目标为搭建TensorFlow 2目标检测API
  • 参考材料:Medium平台发布的TensorFlow 2目标检测API配套教程
  • 已完成前置操作:
    • 从TensorFlow官方Model Garden仓库拉取模型代码
    • 从官方TF2 Detection Model Zoo下载最新版centernet_resnet50_v1_fpn_512x512_coco17_tpu-8预训练模型
  • 故障触发节点:执行到教程第15步启动训练环节时抛出AttributeError,完整报错信息如下:
File "model_main_tf2.py", line 31, in <module> from object_detection import model_lib_v2 
File "/usr/local/lib/python3.7/dist-packages/object_detection-0.1-py3.7.egg/object_detection/model_lib_v2.py", line 31, in <module> from object_detection import model_lib 
File "/usr/local/lib/python3.7/dist-packages/object_detection-0.1-py3.7.egg/object_detection/model_lib.py", line 35, in <module> from object_detection.builders import optimizer_builder 
File "/usr/local/lib/python3.7/dist-packages/object_detection-0.1-py3.7.egg/object_detection/builders/optimizer_builder.py", line 25, in <module> from official.modeling.optimization import ema_optimizer 
File "/content/gdrive/My Drive/TensorFlow/models/official/modeling/optimization/__init__.py", line 23, in <module> from official.modeling.optimization.optimizer_factory import OptimizerFactory 
File "/content/gdrive/My Drive/TensorFlow/models/official/modeling/optimization/optimizer_factory.py", line 36, in <module> 'adamw_experimental': tf.keras.optimizers.experimental.AdamW, 
AttributeError: module 'keras.api._v2.keras.optimizers' has no attribute 'experimental'
  • 已尝试无效操作:安装tf-nightly版本、参考相关issue给出的方案修改,均未解决问题。
错误触发原因

该报错核心是TensorFlow安装版本与拉取的Model Garden代码版本不匹配:

  • 拉取的Model Garden仓库main分支最新代码中,优化器工厂模块调用了tf.keras.optimizers.experimental命名空间,该命名空间仅在特定TensorFlow版本中存在,版本过高或过低都会出现API路径变更问题
  • Colab默认预装的TensorFlow版本、随机安装的tf-nightly构建版本,要么版本过低未合入该experimental命名空间,要么是Keras独立拆分后的高版本,将该路径下的优化器做了位置迁移,最终触发属性不存在的错误
  • 参考的Medium教程发布时间较早,没有做版本锁定说明,直接拉取最新主分支代码、不匹配对应TensorFlow版本是这类环境报错的核心诱因,之前尝试的issue方案未生效也是因为没有对齐两个组件的版本对应关系。
修复操作步骤

按顺序执行以下操作即可正常启动训练,全程不需要修改源码:

  • 先卸载环境中已存在的旧版object_detection包,避免多版本路径冲突:
    !pip uninstall -y object-detection
  • 锁定TensorFlow版本,不要使用最新版或tf-nightly版本,执行以下安装命令后必须重启Colab运行时,清除旧版本缓存:
    !pip install tensorflow==2.12.0
  • 拉取和TensorFlow 2.12版本完全匹配的Model Garden稳定分支代码,不要拉取main分支:
    !git clone --depth 1 --branch v2.12.0 https://github.com/tensorflow/models.git
  • 拉取代码完成后,进入research目录编译proto文件、安装目标检测API依赖:
%cd models/research
!protoc object_detection/protos/*.proto --python_out=.
!cp object_detection/packages/tf2/setup.py .
!python -m pip install .
  • 安装完成后执行官方验证脚本,确认环境配置正常:
    !python object_detection/builders/model_builder_tf2_test.py

验证脚本输出OK、无报错时,再执行训练启动命令即可,不会再出现该属性错误。如果后续需要升级TensorFlow版本,只需要拉取对应版本号的Model Garden tag分支,保证两个组件版本号完全对齐,就不会出现这类API不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:51:18