AttributeError:加载tf.compat.v1.train.SessionRunHook时,模块'tensorflow'没有属性'compat'

时间:2020-06-28 12:43:11

标签: python tensorflow python-wheel

我可以看到这里曾有人问过这个问题 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'

4 个答案:

答案 0 :(得分:16)

这通常是由于TensorFlow-estimator模块损坏造成的。

只需做一个

pip install tensorflow-estimator==2.1.*

答案 1 :(得分:11)

针对Conda用户的特别说明

当一个人进入conda install tensorflow时,它会安装 2.1.0 ,但它会附带 tensorflow-estimator 2.2.0 。要解决此问题,只需在Conda中安装tensorflow 2.1.0后运行conda install tensorflow-estimator==2.1.0

该建议在conda切换到TF 2.2.0(或更好的是2.3.0)之前一直有效

贷记this TF github thread

更新:截至2020年12月10日,Conda的TF 2.3.0适用于Windows,而2.2.0适用于Linux。检查here,查看Conda中TF支持的当前状态。

答案 2 :(得分:1)

您提供的规格正确

tensorflow-gpu 2.1

python 3.7.7

CUDA 10.1

Anaconda 3.7

但在tensorflow 2.X中 首次安装

pip install tensorflow-estimator==2.1.*

然后安装

pip install tensorflow-gpu 

,然后运行以下命令以检查gpu的数量

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

我希望它能工作

答案 3 :(得分:0)

以下解决方案对我有用。 Reference

首先安装Estimator = 2.1,然后其余安装:

conda remove tensorflow
conda install tensorflow-estimator 2.1
conda install tensorflow-gpu=2.1