python - ImportError:无法从“tensorflow.python.eager”(未知位置)导入名称“context”
问题描述
我创建了虚拟环境并安装了 tensorflow 和 tensorflow-gpu。之后我安装了keras。然后我通过导入 keras 来检查我的 conda 终端,我能够在其中导入 keras。但是,如果我尝试导入 keras,则使用 jupyter notebook 会出现以下错误。
import keras
ImportError Traceback (most recent call last)
<ipython-input-5-88d96843a926> in <module>
----> 1 import keras
~\Anaconda3\lib\site-packages\keras\__init__.py in <module>
1 from __future__ import absolute_import
2
----> 3 from . import utils
4 from . import activations
5 from . import applications
~\Anaconda3\lib\site-packages\keras\utils\__init__.py in <module>
4 from . import data_utils
5 from . import io_utils
----> 6 from . import conv_utils
7 from . import losses_utils
8 from . import metrics_utils
~\Anaconda3\lib\site-packages\keras\utils\conv_utils.py in <module>
7 from six.moves import range
8 import numpy as np
----> 9 from .. import backend as K
10
11
~\Anaconda3\lib\site-packages\keras\backend\__init__.py in <module>
----> 1 from .load_backend import epsilon
2 from .load_backend import set_epsilon
3 from .load_backend import floatx
4 from .load_backend import set_floatx
5 from .load_backend import cast_to_floatx
~\Anaconda3\lib\site-packages\keras\backend\load_backend.py in <module>
88 elif _BACKEND == 'tensorflow':
89 sys.stderr.write('Using TensorFlow backend.\n')
---> 90 from .tensorflow_backend import *
91 else:
92 # Try and load external backend.
~\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py in <module>
4
5 import tensorflow as tf
----> 6 from tensorflow.python.eager import context
7 from tensorflow.python.framework import device as tfdev
8 from tensorflow.python.framework import ops as tf_ops
ImportError: cannot import name 'context' from 'tensorflow.python.eager' (unknown location)
已经尝试卸载和安装 keras 和 tensorflow。我对编程很陌生,所以我不知道如何解决它。尝试寻找其他线程但没有帮助。任何人都可以推荐我可以做些什么来解决它?谢谢
解决方案
您是否使用 conda 安装了依赖项?像这样:
$ conda install -c conda-forge keras
$ conda install -c conda-forge tensorflow
$ conda install -c anaconda tensorflow-gpu
如果您安装了它们,pip
它们将无法在您的虚拟环境中工作。查看您的 conda 依赖项列表,看看 tensorflow 和 keras 是否真的存在使用:
$ conda list
如果是,请激活您的虚拟环境:
$ conda activate 'name_of_your_env'
并在其中运行 jupyter,应该是这样的(如果您的 env 在括号中显示激活有效,并且您现在在虚拟 env 中):
(your_env)$ jupyter notebook