导入TensorFlow Hub时出现AttributeError:'module'无'Exporter'属性
解决导入tensorflow_hub时的AttributeError: 'module' object has no attribute 'Exporter'问题
嘿,这个问题我之前帮不少开发者排查过,本质就是TensorFlow和TensorFlow Hub的版本不匹配——旧版的TensorFlow Hub依赖TensorFlow里的Exporter模块,但较新的TensorFlow版本已经移除了这个属性,反过来如果用新版TF Hub配旧版TF也会出问题。
下面给你具体的解决步骤:
1. 先查清楚当前的版本情况
先在你的Notebook或者终端里跑这几行代码,看看当前两个库的版本:
import tensorflow as tf # 如果导入失败,直接用pip命令看:pip show tensorflow tensorflow-hub print(tf.__version__) try: import tensorflow_hub as hub print(hub.__version__) except Exception as e: print("TF Hub导入失败,先看版本再调整")
2. 匹配兼容的版本组合
根据官方的兼容规则,给你两个靠谱的组合:
- 如果你还在使用TensorFlow 1.x:必须安装tensorflow-hub <= 0.12.0,因为0.13.0及以上的TF Hub已经放弃对TF1.x旧API的支持了
安装命令直接跑这个:pip install tensorflow-hub==0.12.0 - 如果你用的是TensorFlow 2.x:确保TF Hub版本在0.13.0及以上,同时TF版本最好是2.5及以上(稳定性更高)
直接升级到最新兼容版:pip install --upgrade tensorflow tensorflow-hub
3. 最后做个收尾操作
安装完新版本后,一定要重启你的Notebook或者Python环境,不然缓存可能还会搞事情。要是怕有残留缓存,也可以跑一下这个命令清理:
pip cache purge
之后再重新导入tensorflow_hub,应该就能正常用了。
额外提一句:
Exporter是TensorFlow 1.x里用来导出模型的旧模块,TF2.x已经换成tf.saved_model.save()这类新API了,旧版TF Hub还在依赖这个旧模块,所以版本对不上就会触发这个错误。
内容的提问来源于stack exchange,提问作者alias_neo92
相关产品推荐
相关产品推荐

