Tensorflow.keras: AlreadyExistsError

Я строю модель, используя тензорный поток. Я тренировал свою модель, и она работала нормально. Затем я изменил свой код, и когда я пытаюсь обучить свою модель, я получаю AlreadyExistError. Я перезапускаю свой Jupyter Notebook, но все еще получаю ту же ошибку. Мне нужна помощь, пожалуйста. вот мой фрагмент кода, в котором я создаю сеть и обучаю ее. Проблема возникает в последней строке.

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv1D, Dropout, Dense, Flatten, LSTM, MaxPooling1D, Bidirectional
from tensorflow.keras.optimizers import Adam
from keras.callbacks import EarlyStopping, TensorBoard

model = Sequential()

model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same',
                 input_shape=(vector_size, 1)))
model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same'))
model.add(Conv1D(32, kernel_size=3, activation='relu', padding='same'))
model.add(MaxPooling1D(pool_size=3))

model.add(Bidirectional(LSTM(512, dropout=0.2, recurrent_dropout=0.3)))

model.add(Dense(512, activation='sigmoid'))
model.add(Dropout(0.2))
model.add(Dense(512, activation='sigmoid'))
model.add(Dropout(0.25))
model.add(Dense(512, activation='sigmoid'))
model.add(Dropout(0.25))

model.add(Dense(2, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=0.0001, decay=1e-6), metrics=['accuracy'])

tensorboard = TensorBoard(log_dir='logs/', histogram_freq=0, write_graph=True, write_images=True)

model.summary()
model.fit(np.array(x_train), np.array(y_train), batch_size=batch_size, epochs=no_epochs,
         validation_data=(np.array(x_test), np.array(y_test)),  callbacks=[tensorboard, EarlyStopping(min_delta=0.0001, patience=3)])

Обучение на 90000 образцах, проверка на 10000 образцов Эпоха 1/10
500/90000 [..............................] - ETA: 2:00:49 /anaconda3/lib/python3.7/site-packages/keras/callbacks/callbacks.py:846: RuntimeWarning: ранняя остановка обусловлена ​​метрикойval_lossкоторый недоступен. Доступные метрики: (self.monitor, ','. Join(list(logs.keys()))), RuntimeWarning -------------------------------------------------------------------------- AlreadyExistsError Traceback (последний вызов последним) в 1 model.fit(np.array(x_train), np.array(y_train), batch_size=batch_size, epochs=no_epochs, ----> 2 validation_data=(np.array) (x_test), np.array(y_test)), callbacks=[tensorboard, EarlyStopping(min_delta=0,0001, терпение =3)]) 3 print('Можно продолжить')

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py in fit (self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, worker, use_multiprocessing, **kwargs) 817 max_queue_size=max_queue_size, 818 worker=worker, -> 819 use_multiprocessing=use_multiprocessing (819 самообработка)

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py in fit(self, model, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, worker, use_multiprocessing, **kwargs) 340 mode=ModeKeys.TRAIN, 341 training_context=training_context, -> 342 total_epogs3_epochs3, epochs3, epochs_logs(epochs), 342 training_result, ModeKeys.TRAIN) 344

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py в run_one_epoch(модель, итератор, функция_выполнения, размер_данных, размер_пакета, стратегия, шаги_пер_эпох, число_выборок, режим, контекст_обучения) step=step, mode=mode, size=current_batch_size) как batch_logs: 127 try: -> 128 batch_outs = execution_function(iterator) 129 за исключением (StopIteration, errors.OutOfRangeError): 130 # TODO(kaftan): ошибка файла о функции tf и error.OutOfRangeError?

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2_utils.py в execute_function(input_fn) 96 # numpyпереводит тензоры в значения в нетерпеливом режиме. 97 вернуть nest.map_structure(_non_none_constant_value, ---> 98 распределенная_функция (input_fn)) 99 100 вернуть выполнение_функции

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py в вызове(self, *args, **kwds) 566 xla_context.Exit() 567 else:-> 568 result = self._call(*args, **kwds) 569 570, если tracing_count == self._get_tracing_count():

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/eager/def_function.py in _call (self, * args, ** kwds) 630 # Поднятие выполнено успешно, переменные инициализированы, и мы можем запустить 631 # функция без состояния. -> 632 return self._stateless_fn (* args, ** kwds) 633 else: 634 canon_args, canon_kwds = \

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py в вызове(self, *args, **kwargs) 2361 с self._lock:
2362 graph_function, args, kwargs = self._maybe_define_function(args, kwargs) -> 2363 return graph_function._filtered_call(args, kwargs) # pylint: disable= protected-access 2364 2365 @property

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py в _filtered_call (self, args, kwargs) 1609 if isinstance (t, (ops.Tensor, 1610
resource_variable_ops.BaseResourceVariable))), -> 1611 self.captured_inputs) 1612 1613 def _call_flat(self, args, capture_inputs, cancellation_manager =None):

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py в _call_flat(self, args, capture_inputs, cancellation_manager)
1690 # Лента не просматривается; перейти к запуску функции.
1691 return self._build_call_outputs (self._inference_function.call (-> 1692 ctx, args, cancellation_manager= cancellation_manager)) 1693
forward_backward = self._select_forward_and_backward_functions (
1694 args,

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/eager/function.py в вызове (self, ctx, args, cancellation_manager) 543 input=args, 544 attrs=("executor_type", executor_type, "config_proto", config),-> 545 ctx=ctx) 546 else: 547 выходов = execute.execute_with_cancellation(

/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/eager/execute.py в quick_execute(op_name, num_outputs, inputs, attrs, ctx, name) 65 else: 66 message = e.message ---> 67 six.raise_from(core._status_to_exception(e.code, message), None) 68 за исключением TypeError как e: 69 keras_symbolic_tensors = [

/anaconda3/lib/python3.7/site-packages/six.py в raise_from (значение, from_value)

AlreadyExistsError: Resource __per_step_0 / sequence / twoirectional/forward_lstm/while_grad/body/_429/gradient/AddN_13/tmp_var/N10tensorflow19TemporaryVariableOp6TmpVarE [[{{nodempvartial / twoirectional / forward_lstm / body] [Op:__inference_distributed_function_12060]

Стек вызовов функции: Distributed_function

3 ответа

У вас должна быть проблема на той же архитектуре из предыдущего запуска, которая видна во время обучения.

Это должно сбросить сеанс keras:

from tensorflow.keras import backend
backend.clear_session()

Как и в предыдущем ответе, со мной произошло то, что у меня уже был установлен Tensorflow через командную строку в Windows, поэтому больше не было необходимости использовать импорт команд в моем блокноте Jupyter. Кроме того, эта команда установки может/должна появляться только один раз (желательно в верхней части вашей программы). Чтобы убедиться, что он у вас уже есть (например, если вы используете Anaconda), нужно перейти на вкладку «Среда» и в правой части экрана посмотреть под регистром «установлено», если TensorFlow есть в списке. Поскольку в моей ситуации это было именно так, я просто пошел дальше и больше не пытался импортировать TensorFlow.

В моем случае у меня возникла проблема при использовании EMR на AWS, и я решил просто удалить Keras, если у вас есть тензорный поток, у вас уже есть Keras, но есть другие пакеты, которые зависят от старой библиотеки Keras. Поэтому вам необходимо удалить старый Keras, чтобы избежать этой проблемы.

!pip удалить керас

Другие вопросы по тегам