首页 > 解决方案 > AttributeError:加载 tf.compat.v1.train.SessionRunHook 时模块“tensorflow”没有属性“compat”

问题描述

我可以看到在tensorflow-has-no-attribute-compat之前已经问过这个问题

但给出的答案是

Microsoft Visual C++ 2015-2019 Redistributable (x64)

它对以前的成员不起作用,对我也不起作用。我安装了 Visual Studio 2019。无论如何,我还是下载了它并修复了(MV C++)以防万一。仍然得到同样的错误。

话虽如此,我还没有在 google 或 stackoverflow 上的任何地方找到有效的解决方案。以下是我安装的一些规格细节。

tensorflow-gpu 2.1
python 3.7.7
CUDA 10.1
Anaconda 3.7

看起来 gpu 启动成功。

2020-06-28 07:19:47.851257: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll

3.7.7 的 python 包。通过 pip 安装的所有软件包。只有通过 conda 安装的 tensorflow。不要认为这有什么不同。我使用了 conda,所以我可以指定安装 2.1 版本,pip 会自动安装 2.2。

Package                Version
---------------------- ----------------------------
absl-py                0.9.0
appdirs                1.4.4
astor                  0.7.1
astroid                2.4.2
astropy                4.0.1.post1
attrs                  19.3.0
backcall               0.2.0
bayesian-optimization  1.2.0
black                  19.10b0
bleach                 3.1.5
blinker                1.4
brotlipy               0.7.0
cachetools             4.1.0
certifi                2020.6.20
cffi                   1.14.0
chardet                3.0.4
click                  7.1.2
cloudpickle            1.3.0
colorama               0.4.3
confuse                1.3.0
cryptography           2.9.2
cycler                 0.10.0
decorator              4.4.2
defusedxml             0.6.0
entrypoints            0.3
future                 0.18.2
gast                   0.2.2
gitdb                  4.0.5
GitPython              3.1.3
google-auth            1.17.2
google-auth-oauthlib   0.4.1
google-pasta           0.2.0
grpcio                 1.27.2
gym                    0.17.2
h2o                    3.30.0.5
h5py                   2.10.0
htmlmin                0.1.12
idna                   2.10
ImageHash              4.1.0
importlib-metadata     1.7.0
invoke                 1.4.1
ipykernel              5.3.0
ipython                7.16.1
ipython-genutils       0.2.0
ipywidgets             7.5.1
isort                  4.3.21
jedi                   0.17.1
Jinja2                 2.11.2
joblib                 0.15.1
json5                  0.9.5
jsonschema             3.2.0
jupyter                1.0.0
jupyter-client         6.1.3
jupyter-console        6.1.0
jupyter-core           4.6.3
jupyterlab             2.1.5
jupyterlab-server      1.1.5
kaggle                 1.5.6
Keras                  2.4.3
Keras-Applications     1.0.8
Keras-Preprocessing    1.1.0
kiwisolver             1.2.0
lazy-object-proxy      1.4.3
lightgbm               2.3.1
llvmlite               0.33.0
Markdown               3.2.2
MarkupSafe             1.1.1
matplotlib             3.2.2
mccabe                 0.6.1
missingno              0.4.2
mistune                0.8.4
mkl-service            2.3.0
nbconvert              5.6.1
nbdime                 2.0.0
nbformat               5.0.7
networkx               2.4
notebook               6.0.3
numba                  0.50.1
numpy                  1.19.0
oauthlib               3.0.1
opt-einsum             0+untagged.56.g2664021.dirty
packaging              20.4
pandas                 1.0.5
pandas-profiling       2.8.0
pandocfilters          1.4.2
parso                  0.7.0
path                   13.1.0
path.py                12.4.0
pathspec               0.8.0
patsy                  0.5.1
phik                   0.10.0
pickleshare            0.7.5
Pillow                 7.1.2
pip                    20.1.1
plotly                 4.8.2
prometheus-client      0.8.0
prompt-toolkit         3.0.5
protobuf               3.12.3
py4j                   0.10.9
pyasn1                 0.4.8
pyasn1-modules         0.2.7
pycparser              2.20
pyglet                 1.5.0
Pygments               2.6.1
PyJWT                  1.7.1
pylint                 2.5.3
pyOpenSSL              19.1.0
pyparsing              2.4.7
pyreadline             2.1
pyrsistent             0.16.0
PySocks                1.7.1
pyspark                3.0.0
python-dateutil        2.8.1
python-slugify         4.0.0
pytz                   2020.1
PyWavelets             1.1.1
pywin32                228
pywinpty               0.5.7
PyYAML                 5.3.1
pyzmq                  19.0.1
qtconsole              4.7.5
QtPy                   1.9.0
regex                  2020.6.8
requests               2.24.0
requests-oauthlib      1.2.0
retrying               1.3.3
rsa                    4.6
scikit-learn           0.23.1
scipy                  1.5.0
seaborn                0.10.1
Send2Trash             1.5.0
setuptools             47.3.1.post20200616
six                    1.15.0
smmap                  3.0.4
statsmodels            0.11.1
tabulate               0.8.7
tangled-up-in-unicode  0.0.6
tensorboard            2.2.2
tensorboard-plugin-wit 1.6.0.post3
tensorflow             2.1.0
tensorflow-estimator   2.2.0
termcolor              1.1.0
terminado              0.8.3
testpath               0.4.4
text-unidecode         1.3
threadpoolctl          2.1.0
toml                   0.10.1
tornado                6.0.4
tqdm                   4.46.1
traitlets              4.3.3
typed-ast              1.4.1
urllib3                1.24.3
visions                0.4.4
wcwidth                0.2.5
webencodings           0.5.1
Werkzeug               0.16.1
wheel                  0.34.2
widgetsnbextension     3.5.1
win-inet-pton          1.1.0
wincertstore           0.2
wrapt                  1.12.1
zipp                   3.1.0

这是我尝试导入 tensorflow 时遇到的错误。(注意:我在 Tensorflow 2.1 的 GPU 安装和 CPU 安装中收到此错误)

    Python 3.7.7 (default, May  6 2020, 11:45:54) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2020-07-05 09:48:26.577683: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 101, in <module>
    from tensorflow_core import *
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\__init__.py", line 46, in <module>
    from . _api.v2 import compat
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\__init__.py", line 39, in <module>
    from . import v1
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\v1\__init__.py", line 32, in <module>
    from . import compat
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\__init__.py", line 39, in <module>
    from . import v1
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\v1\__init__.py", line 29, in <module>
    from tensorflow._api.v2.compat.v1 import app
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\__init__.py", line 39, in <module>
    from . import v1
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\v1\__init__.py", line 32, in <module>
    from . import compat
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\__init__.py", line 39, in <module>
    from . import v1
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_core\_api\v2\compat\v1\compat\v1\__init__.py", line 667, in <module>
    from tensorflow_estimator.python.estimator.api._v1 import estimator
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_estimator\__init__.py", line 10, in <module>
    from tensorflow_estimator._api.v1 import estimator
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_estimator\_api\v1\estimator\__init__.py", line 10, in <module>
    from tensorflow_estimator._api.v1.estimator import experimental
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_estimator\_api\v1\estimator\experimental\__init__.py", line 10, in <module>
    from tensorflow_estimator.python.estimator.canned.dnn import dnn_logit_fn_builder
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_estimator\python\estimator\canned\dnn.py", line 33, in <module>
    from tensorflow_estimator.python.estimator import estimator
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 53, in <module>
    from tensorflow_estimator.python.estimator import util as estimator_util
  File "G:\ProgramFiles\Anaconda37\envs\tensorflow\lib\site-packages\tensorflow_estimator\python\estimator\util.py", line 75, in <module>
    class _DatasetInitializerHook(tf.compat.v1.train.SessionRunHook):
AttributeError: module 'tensorflow' has no attribute 'compat'

标签: pythontensorflowpython-wheel

解决方案


这通常是由损坏的 TensorFlow-estimator 模块引起的。

简单地做一个

pip install tensorflow-estimator==2.1.*

推荐阅读