名称 'get_default_graph' 未定义

name 'get_default_graph' is not defined

我无法在我的代码中使用 model = Sequential()。我是 运行 jupyter notebook 中名为 ml-learn 的环境中的代码。我收到一个名为 name 'get_default_graph' is not defined.

的错误
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
 in 
----> 1 md = bidirectional_lstm_models(seq_length, vocab_size)
      2 md.summary()

 in bidirectional_lstm_models(seq_len, vocab_size)
      1 def bidirectional_lstm_models(seq_len, vocab_size):
      2     model = Sequential()
----> 3     model.add(Bidirectional(LSTM(256, activation="relu"), input_shape=(seq_len, vocab_size)))
      4     model.add(Dropout(0.6))
      5     model.add(Dense(vocab_size))

~/opt/anaconda3/envs/ml-learn/lib/python3.7/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
     89                 warnings.warn('Update your `' + object_name + '` call to the ' +
     90                               'Keras 2 API: ' + signature, stacklevel=2)
---> 91             return func(*args, **kwargs)
     92         wrapper._original_function = func
     93         return wrapper

~/opt/anaconda3/envs/ml-learn/lib/python3.7/site-packages/keras/layers/recurrent.py in __init__(self, units, activation, recurrent_activation, use_bias, kernel_initializer, recurrent_initializer, bias_initializer, unit_forget_bias, kernel_regularizer, recurrent_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, recurrent_constraint, bias_constraint, dropout, recurrent_dropout, implementation, return_sequences, return_state, go_backwards, stateful, unroll, **kwargs)
   2176                         dropout=dropout,
   2177                         recurrent_dropout=recurrent_dropout,
-> 2178                         implementation=implementation)
   2179         super(LSTM, self).__init__(cell,
   2180                                    return_sequences=return_sequences,

~/opt/anaconda3/envs/ml-learn/lib/python3.7/site-packages/keras/layers/recurrent.py in __init__(self, units, activation, recurrent_activation, use_bias, kernel_initializer, recurrent_initializer, bias_initializer, unit_forget_bias, kernel_regularizer, recurrent_regularizer, bias_regularizer, kernel_constraint, recurrent_constraint, bias_constraint, dropout, recurrent_dropout, implementation, **kwargs)
   1833                  implementation=1,
   1834                  **kwargs):
-> 1835         super(LSTMCell, self).__init__(**kwargs)
   1836         self.units = units
   1837         self.activation = activations.get(activation)

~/opt/anaconda3/envs/ml-learn/lib/python3.7/site-packages/keras/engine/base_layer.py in __init__(self, **kwargs)
    130         if not name:
    131             prefix = self.__class__.__name__
--> 132             name = _to_snake_case(prefix) + '_' + str(K.get_uid(prefix))
    133         self.name = name
    134 

~/opt/anaconda3/envs/ml-learn/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py in get_uid(prefix)
     72     """
     73     global _GRAPH_UID_DICTS
---> 74     graph = get_default_graph()
     75     if graph not in _GRAPH_UID_DICTS:
     76         _GRAPH_UID_DICTS[graph] = defaultdict(int)

NameError: name 'get_default_graph' is not defined

我尝试过的事情: 在文件 tensorflow_backend.py 中,我尝试修改为:tf.compat.v1.get_default_graph。我还尝试修改我正在处理的文件:tensorflow.keras.models import Sequential。我尝试了两者的组合。 None 其中有效。

如果有人对此有任何了解,请帮助我!

这个问题有很多问题(至少对我而言)。我为解决该问题所做的工作如下:

  1. 从命令行安装 Anaconda:转到 here 下载完成后,从终端 运行 bash ~/Downloads/Anaconda3-2019.10-MacOSX-x86_64.sh。请务必根据您下载的版本更改 2019.10
  2. 通过输入 conda list 或任何 conda. -version.
  3. 确保安装了 conda
  4. 如果 conda 没有出现,请尝试重新启动终端。如果这不起作用,请尝试 eval “$(/home/msarahan/mc3_dummy/bin/conda shell.bash hook)”。将目录替换为您的目录,然后 运行 conda init。如果这不起作用,运行 这个:export PATH="/Users/myname/anaconda2/bin:$PATH".
  5. 一旦您执行 conda init,它会询问哪个 shell。我正在使用 fish,所以我选择了 fish
  6. 然后运行conda create -n envName。将 envName 替换为您喜欢的任何环境名称。
  7. 激活您创建的环境:conda activate envName
  8. 然后打开您最喜欢的编辑器并选择您刚刚创建的环境。
  9. 如果 jupyter 不适用于您的编辑器(我的案例:Visual Studio 代码),运行 conda install -c anaconda jupyter.
  10. 在 运行ning 激活环境时,在 iTerm(我的案例)中安装必要的包:conda install kerasconda install tensorflow(我的案例)。
  11. 通过 运行ning 验证您的安装:pip show keraspip show tensorflow 在您的 jupyter notebook 中(我的案例 Visual Studio 代码)。

为了解决我的问题,我正面临 kernal 出人意料地死在我身上。因此,我关闭了 mac 并稍后打开它。如果您仍然无法修复这样的错误,也请尝试这样做(我敢打赌我们都会让 mac 睡觉 lol)。