Rod*_*iro 43 python tensorflow
我在 Spyder 3.3 上使用 Python 3.7 和 Tensorlow 2.0 运行这个简单的代码:
import tensorflow as tf
print(tf.__version__)
Run Code Online (Sandbox Code Playgroud)
当我尝试在同一个 IPython 控制台中再次运行它时,出现以下错误:
文件“/home/rodrigo/.local/lib/python3.7/site-packages/tensorflow_core/python/eager/monitoring.py”,第121行,在init self._metric = self._metric_methods[self._label_length].create中(*参数)
AlreadyExistsError:另一个同名的指标已存在。
如果我关闭 IPython 控制台,然后再次打开它,它就可以正常工作。我在导入 Tensorflow 的每个代码中都会遇到此错误。有谁知道如何解决这个问题?
系统配置:
use*_*323 62
TL;DR:确保 Keras 版本与 Tensorflow 版本匹配
我也遇到同样的事情:
核心问题似乎是安装了两个 Keras 软件包:
<site-packages>/keras
<site-packages/tensorflow/python/keras
Run Code Online (Sandbox Code Playgroud)
如果您查看 2.6 的发行说明: https://github.com/tensorflow/tensorflow/releases/tag/v2.6.0
Keras 被拆分成一个单独的 PIP 包(keras),其代码已移至 GitHub 存储库keras-team/keras。tf.keras 的 API 端点保持不变,但现在由 keras PIP 包支持。tensorflow/python/keras 中的现有代码是过时的副本,将在未来版本 (2.7) 中删除。请删除对tensorflow.python.keras的所有导入,并将其替换为公共tf.keras API。
由于某种原因,它仍然从两个包中导入,这会触发有效的异常(只应导入一个 Keras 实例)
进一步挖掘,似乎正在安装 Keras-2.7,恢复到 Keras-2.6 解决了问题:
pip install keras==2.6.*
Run Code Online (Sandbox Code Playgroud)
由于某种原因: https://github.com/tensorflow/tensorflow/blob/v2.6.1/tensorflow/tools/pip_package/setup.py#L106
不起作用,也许是 PIP 中的错误?
Mih*_*eac 10
Tensorflow 在导入过程中构建单例作为副作用。导入两次会导致再次创建单例,这是不支持的。请不要导入两次。
小智 6
经过一番查询,问题应该与Keras包版本问题有关。一种解决方案,我还不知道为什么,但经过验证,如下:
1 --> 卸载现有的 Keras 包(博主当前错误的版本是 2.7):
pip uninstall keras
Run Code Online (Sandbox Code Playgroud)
2 --> 安装特定版本的 Keras 包;我已经安装了 2.6.0 版本:
pip install keras==2.6.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67284 次 |
最近记录: |