Tensorflow 2.1.0中出现了“ModuleNotFoundError: No module named 'tensorflow_core.estimator'”错误。

33

使用tensorflow时,我遇到了以下错误信息

ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.'

File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'tensorflow_core.estimator'

已安装的与tensorflow相关的软件包如下所示。我是否需要更新estimator的版本?如果是这种情况,应该如何安装正确版本的estimator?

输入图像描述


1
你可以尝试使用以下命令升级到最新版本的 TensorflowKeraspip install tensorflow --user --upgradepip install keras --user --upgrade - yudhiesh
8个回答

38
TL;DR: 通过确保tensorflowtensorflow-estimator版本相同来解决了这个问题。在我这种情况下,我需要降低tensorflow-estimator的版本,因此conda install tensorflow-estimator=2.1.0为我解决了问题。
如您所知,某些tensorflow版本与某些GPU不兼容,因此我首先会使用conda search tensorflow检查可用的构建版本;然后,我会确保所选的tensorflow构建版本能够识别我的GPU(使用tf.config.list_physical_devices('GPU'));最后,我会使用conda search tensorflow-estimator搜索匹配的tensorflow-estimator构建版本,然后再使用conda install tensorflow-estimator=<chosen version> -n <my_venv>进行安装。
然而,需要注意的是,如果您没有使用GPU,则所有这些步骤大多是无用的。如果是这种情况,升级两个软件包(或将它们的版本降级/升级以使它们的版本匹配)可能是解决方法。

4
在指定版本时,请确保使用双等号== - Binx
如果您正在使用笔记本电脑,请确保重新启动内核。干杯! - Akindele Michael

8
你需要降级tensorflow-estimator或升级tensorflow,以使版本匹配。 您可以使用以下方式进行降级:
pip install tensorflow-estimator==2.1.0

如果我想将tensorflow-estimator版本降级到2.1.0,应该怎么做?我犹豫是否更改tensorflow版本,因为我尝试了几个其他版本,但都无法选择GPU卡。 - user297850
1
@user297850,您可以使用pip install tensorflow-estimator==2.1.0来完成此操作。 - Marzi Heidari

3
尝试升级Tensorflow和Keras。
pip install tensorflow --upgrade
pip install keras --upgrade

你好,感谢回复。由于我使用conda install安装了tensorflow-gpu,那么这个pip install是否也能帮助处理GPU部分呢? - user297850
如果你只是使用pip install tensorflow,你将安装CPU和GPU版本,因此你不需要再次安装。 - yudhiesh
嗨,我刚按建议更新了,但当我使用conda list tensorflow时,信息没有改变,输出与上面发布的相同。 - user297850
@user297850,你能否尝试一下更新后的命令? - yudhiesh

1

我想在这里留下一些关于我如何解决问题的参数。

对于一个我必须使用Python 3.7.10的作业,我尝试通过将tensorflow_core.estimator降级到2.1.0(与tensorflow相同),从其先前版本2.6.0来解决问题,但它没有起作用。

最终对我有效的组合是(适用于Python 3.7.10):

  • tensorflow_core.estimator = 2.6.0
  • tensorflow = 2.3.0
  • tensorflow_base = 2.3.0

0

我最近也遇到了同样的问题——我参考了多个页面/资源,并在新的conda环境(Python 3.9.12,而不是3.10.*,因为后者作为此帖子发布时还很新,尚未完全兼容)上进行了干净的tensorflow安装,以测试我的代码是否能够工作。谢天谢地,它确实可以。

这基本上证实了我的原始conda环境中的tensorflow安装已经出现了某些问题。我的解决方法是手动删除所有以“tensor-”(tensor*)开头的文件夹,位于~/anaconda3/envs/<my_env_name>/lib/python3.9/site-packages/目录下,然后尝试重新安装。即使这次是缓存的安装,事情仍然进展得很顺利。

总之,我建议删除所有tensorflow相关的包并进行全新的安装,以便一切都能正确安装。


0
在我的情况下,当我尝试import tensorflow时,是在Google Colab上。问题是由于版本1.14导致的,安装了1.15后问题得以解决。

0

很奇怪,但是我遇到了这个问题,因为一个字符串列没有被转换成分类变量。


0

这里还有一个: 在我的情况下,我不小心导入了 import tensorflow.keras as K ,而我应该是 import keras as K 显然它们是不同的,我得到了相同的错误信息。 希望我能为某人节省一些时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接