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



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

但给出的答案是

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

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

所以话虽如此,我还没有在谷歌或堆栈溢出的任何地方找到有效的解决方案。 以下是我安装的一些规格详细信息。

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 安装的张量流。不要认为这有什么区别。我使用了 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

这是我尝试导入张量流后遇到的错误。(注意:我在 GPU 安装和 Tensorflow 2.1 的 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:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow__init__.py", line 101, in <module>
from tensorflow_core import *
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core__init__.py", line 46, in <module>
from . _api.v2 import compat
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compat__init__.py", line 39, in <module>
from . import v1
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compatv1__init__.py", line 32, in <module>
from . import compat
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compatv1compat__init__.py", line 39, in <module>
from . import v1
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compatv1compatv1__init__.py", line 29, in <module>
from tensorflow._api.v2.compat.v1 import app
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compat__init__.py", line 39, in <module>
from . import v1
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compatv1__init__.py", line 32, in <module>
from . import compat
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compatv1compat__init__.py", line 39, in <module>
from . import v1
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_core_apiv2compatv1compatv1__init__.py", line 667, in <module>
from tensorflow_estimator.python.estimator.api._v1 import estimator
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_estimator__init__.py", line 10, in <module>
from tensorflow_estimator._api.v1 import estimator
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_estimator_apiv1estimator__init__.py", line 10, in <module>
from tensorflow_estimator._api.v1.estimator import experimental
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_estimator_apiv1estimatorexperimental__init__.py", line 10, in <module>
from tensorflow_estimator.python.estimator.canned.dnn import dnn_logit_fn_builder
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_estimatorpythonestimatorcanneddnn.py", line 33, in <module>
from tensorflow_estimator.python.estimator import estimator
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_estimatorpythonestimatorestimator.py", line 53, in <module>
from tensorflow_estimator.python.estimator import util as estimator_util
File "G:ProgramFilesAnaconda37envstensorflowlibsite-packagestensorflow_estimatorpythonestimatorutil.py", line 75, in <module>
class _DatasetInitializerHook(tf.compat.v1.train.SessionRunHook):
AttributeError: module 'tensorflow' has no attribute 'compat'

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(之前有效

此 TF github 线程的功劳

更新:截至 2021 年 8 月 20 日,Conda 拥有适用于 Windows 的 TF 2.4 和适用于 Linux 的 2.5。查看此处以查看 Conda 中 TF 支持的当前状态。

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

只需做一个

pip install tensorflow-estimator==2.1.*

您给出的规格是正确的

Tensorflow-GPU 2.1

蟒蛇 3.7.7

库达 10.1

蟒蛇 3.7

但在张量流 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')))

以下解决方案对我有用。参考

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

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

相关内容

最新更新