首页 > 解决方案 > tensorflow 2.3下的tensorflow-hub导入错误

问题描述

我的环境:Windows 10

Python 3.8.8(在带有 cuda 10.1 的 anaconda gpu 环境中)

tensorflow             2.3.0
tensorflow-estimator   2.3.0
tensorflow-hub         0.8.0

使用时出错import tensorflow_hub as hub

我得到的错误信息:


---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-30-09d6b3aaf170> in <module>
      4 from tensorflow.keras.models import Model
      5 from tensorflow.keras.callbacks import ModelCheckpoint
----> 6 import tensorflow_hub as hub
      7 
      8 import tokenization

~\.conda\envs\nlp\lib\site-packages\tensorflow_hub\__init__.py in <module>
     27 # error message is thrown instead of an obscure error of missing
     28 # symbols at executing the imports.
---> 29 from tensorflow_hub.estimator import LatestModuleExporter
     30 from tensorflow_hub.estimator import register_module_for_export
     31 from tensorflow_hub.feature_column import image_embedding_column

~\.conda\envs\nlp\lib\site-packages\tensorflow_hub\estimator.py in <module>
     62 
     63 
---> 64 class LatestModuleExporter(tf_v1.estimator.Exporter):
     65   """Regularly exports registered modules into timestamped directories.
     66 

~\.conda\envs\nlp\lib\site-packages\tensorflow\python\util\lazy_loader.py in __getattr__(self, item)
     60 
     61   def __getattr__(self, item):
---> 62     module = self._load()
     63     return getattr(module, item)
     64 

~\.conda\envs\nlp\lib\site-packages\tensorflow\python\util\lazy_loader.py in _load(self)
     43     """Load the module and insert it into the parent's globals."""
     44     # Import the target module and insert it into the parent's namespace
---> 45     module = importlib.import_module(self.__name__)
     46     self._parent_module_globals[self._local_name] = module
     47 

~\.conda\envs\nlp\lib\importlib\__init__.py in import_module(name, package)
    125                 break
    126             level += 1
--> 127     return _bootstrap._gcd_import(name[level:], package, level)
    128 
    129 

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\python\estimator\api\__init__.py in <module>
      8 import sys as _sys
      9 
---> 10 from tensorflow_estimator.python.estimator.api._v1 import estimator
     11 
     12 del _print_function

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\python\estimator\api\_v1\estimator\__init__.py in <module>
      8 import sys as _sys
      9 
---> 10 from tensorflow_estimator.python.estimator.api._v1.estimator import experimental
     11 from tensorflow_estimator.python.estimator.api._v1.estimator import export
     12 from tensorflow_estimator.python.estimator.api._v1.estimator import inputs

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\python\estimator\api\_v1\estimator\experimental\__init__.py in <module>
      8 import sys as _sys
      9 
---> 10 from tensorflow_estimator.python.estimator.canned.dnn import dnn_logit_fn_builder
     11 from tensorflow_estimator.python.estimator.canned.kmeans import KMeansClustering as KMeans
     12 from tensorflow_estimator.python.estimator.canned.linear import LinearSDCA

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\python\estimator\canned\dnn.py in <module>
     29 from tensorflow.python.keras.utils import losses_utils
     30 from tensorflow.python.util.tf_export import estimator_export
---> 31 from tensorflow_estimator.python.estimator import estimator
     32 from tensorflow_estimator.python.estimator.canned import head as head_lib
     33 from tensorflow_estimator.python.estimator.canned import optimizers

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py in <module>
     50 from tensorflow.python.util.tf_export import estimator_export
     51 from tensorflow_estimator.python.estimator import model_fn as model_fn_lib
---> 52 from tensorflow_estimator.python.estimator import run_config
     53 from tensorflow_estimator.python.estimator import util as estimator_util
     54 from tensorflow_estimator.python.estimator.export import export_lib

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\__init__.py in <module>
      8 import sys as _sys
      9 
---> 10 from tensorflow_estimator._api.v1 import estimator
     11 
     12 del _print_function

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\_api\v1\estimator\__init__.py in <module>
      8 import sys as _sys
      9 
---> 10 from tensorflow_estimator._api.v1.estimator import experimental
     11 from tensorflow_estimator._api.v1.estimator import export
     12 from tensorflow_estimator._api.v1.estimator import inputs

~\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\_api\v1\estimator\experimental\__init__.py in <module>
      8 import sys as _sys
      9 
---> 10 from tensorflow_estimator.python.estimator.canned.dnn import dnn_logit_fn_builder
     11 from tensorflow_estimator.python.estimator.canned.kmeans import KMeansClustering as KMeans
     12 from tensorflow_estimator.python.estimator.canned.linear import LinearSDCA

ImportError: cannot import name 'dnn_logit_fn_builder' from partially initialized module 'tensorflow_estimator.python.estimator.canned.dnn' (most likely due to a circular import) (C:\Users\Admin\.conda\envs\nlp\lib\site-packages\tensorflow_estimator\python\estimator\canned\dnn.py)

标签: pythontensorflow

解决方案


通过安装最新的 tensorflow hub 版本解决

pip install --upgrade tensorflow_hub

当前版本:

tensorflow-hub 0.12.0


推荐阅读