имя 'get_default_graph' не определено - PullRequest
0 голосов
/ 26 января 2020

Я не могу использовать model = Sequential() в своем коде. Я запускаю код в блокноте jupyter в среде под названием 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. Я пробовал комбинации обоих. Ничего из этого не сработало.

Если кто-то что-то знает об этом, пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 08 февраля 2020

Было много проблем с этим вопросом (по крайней мере, для меня). Чтобы решить эту проблему, я сделал следующее:

  1. Установите Anaconda из командной строки: go здесь и после завершения загрузки запустите bash ~/Downloads/Anaconda3-2019.10-MacOSX-x86_64.sh из терминала. Обязательно измените 2019.10 в зависимости от версии, которую вы скачали.
  2. Убедитесь, что conda установлен, введя conda list или что-нибудь еще conda. -version.
  3. Если conda не появляется у вас, попробуйте перезагрузить терминал. Если это не сработает, попробуйте eval “$(/home/msarahan/mc3_dummy/bin/conda shell.bash hook)”. Замените каталог своим и затем запустите conda init. Если это не сработает, запустите: export PATH="/Users/myname/anaconda2/bin:$PATH".
  4. Как только вы сделаете conda init, он спросит, какая оболочка. Я использую fish, поэтому я выбрал fish.
  5. Затем запустите conda create -n envName. Замените envName на любое имя среды, которое вам нравится.
  6. Активируйте созданную вами среду: conda activate envName.
  7. Затем откройте ваш любимый редактор и выберите только что созданную среду.
  8. Если jupyter недоступен для вашего редактора (в моем случае: код Visual Studio), запустите conda install -c anaconda jupyter.
  9. Установите необходимые пакеты в iTerm (мой случай), пока среда активируется, выполнив: conda install keras и conda install tensorflow (мой случай).
  10. Проверьте вашу установку, запустив: pip show keras и pip show tensorflow в вашей записной книжке Jupyter (мой случай код Visual Studio).

Чтобы подсластить мою проблему, я столкнулся с Kernal неожиданно умирает от меня. Поэтому я выключил ма c и через некоторое время включил ее. Попробуйте также, если вы все еще не можете исправить такую ​​ошибку (держу пари, мы все оставляем наши максы в спящем режиме).

...