运行TensorFlow的estimator报doc_controls无inheritable_header属性求助
报错原因
这个报错是因为你本地安装的tensorflow和tensorflow-estimator两个包版本不匹配导致的。较新版本的tensorflow-estimator使用了doc_controls.inheritable_header这个文档控制装饰器,但你当前安装的tensorflow版本过低,对应模块中并没有这个属性,因此触发导入错误。这个装饰器仅用于生成官方文档,本身不影响estimator的实际运算功能。
可用解决方案
- 方案一:对齐两个依赖包的版本(最稳定)
先查询当前安装的tensorflow版本:
再安装和tensorflow主版本号完全一致的tensorflow-estimator即可,比如你的tensorflow版本是2.12.0,就执行:pip show tensorflowpip install tensorflow-estimator==2.12.0 - 方案二:临时修改代码绕过报错
找到报错提示的estimator.py文件,定位到触发报错的@doc_controls.inheritable_header装饰器整段代码,直接注释掉这部分内容即可,不会影响estimator的正常运行。 - 方案三:替换高阶API
如果你是新开发代码,可直接使用TF2原生的Keras高阶API完成模型训练逻辑,完全可以替代estimator的功能,也不会出现版本适配问题。
内容的提问来源于stack exchange,提问作者簡亞倫
相关产品推荐
相关产品推荐

