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

2024-05-03 09:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以看出这个问题以前在这里被问过 tensorflow-has-no-attribute-compat

但答案是

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

它对前一位成员不起作用,对我也不起作用。我已安装visual studio 2019。我下载了它,并运行了一个修复(mvc++),以防万一。仍然得到相同的错误

所以说,我还没有在谷歌或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'

Tags: inpyimportlibtensorflowlinesitefile
3条回答

您提供的规格是正确的

tensorflow gpu 2.1

python 3.7.7

CUDA 10.1

Python3.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')))

我希望它能起作用

这通常是由于TensorFlow估计器模块损坏造成的

简单地做一个

pip install tensorflow-estimator==2.1.*

康达用户特别注意事项

当你进入conda install tensorflow时,它会安装2.1.0,但它会带来tensorflow估计器2.2.0。要解决此问题,只需在Conda中安装tensorflow 2.1.0后运行conda install tensorflow-estimator==2.1.0

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

贷记this TF github thread

更新:截至2021年8月20日,Conda的TF2.4适用于Windows,TF2.5适用于Linux。检查here以查看Conda中TF支持的当前状态

相关问题 更多 >