Как исправить ошибку: не удается зарегистрировать 2 метрики с одинаковым именем: /tensorflow/api/keras/optimizers

#tensorflow #keras #python-3.9

Вопрос:

Когда я пытаюсь запустить код Python для глубокого обучения с использованием библиотеки TensorFlow, я получаю следующую ошибку:

 2021-10-24 10:07:13.619481: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2021-10-24 10:07:13.619752: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2021-10-24 10:07:18.797570: E tensorflow/core/lib/monitoring/collection_registry.cc:77] `Cannot register 2 metrics with the same name: /tensorflow/api/keras/optimizers`
Traceback (most recent call last):
  File "C:UsersAdminDownloadsCompressedFace-Mask-Detection-masterdetect_mask_image.py", line 5, in <module>
    from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
  File "C:Python39libsite-packageskerasapi_v2keras__init__.py", line 8, in <module>
    from keras import __version__
  File "C:Python39libsite-packageskeras__init__.py", line 25, in <module>
    from keras import models
  File "C:Python39libsite-packageskerasmodels.py", line 20, in <module>
    from keras import metrics as metrics_module
  File "C:Python39libsite-packageskerasmetrics.py", line 26, in <module>
    from keras import activations
  File "C:Python39libsite-packageskerasactivations.py", line 20, in <module>
    from keras.layers import advanced_activations
  File "C:Python39libsite-packageskeraslayers__init__.py", line 23, in <module>
    from keras.engine.input_layer import Input
  File "C:Python39libsite-packageskerasengineinput_layer.py", line 21, in <module>
    from keras.engine import base_layer
  File "C:Python39libsite-packageskerasenginebase_layer.py", line 43, in <module>
    from keras.mixed_precision import loss_scale_optimizer
  File "C:Python39libsite-packageskerasmixed_precisionloss_scale_optimizer.py", line 18, in <module>
    from keras import optimizers
  File "C:Python39libsite-packageskerasoptimizers.py", line 26, in <module>
    from keras.optimizer_v2 import adadelta as adadelta_v2
  File "C:Python39libsite-packageskerasoptimizer_v2adadelta.py", line 22, in <module>
    from keras.optimizer_v2 import optimizer_v2
  File "C:Python39libsite-packageskerasoptimizer_v2optimizer_v2.py", line 36, in <module>
    keras_optimizers_gauge = tf.__internal__.monitoring.BoolGauge(
  File "C:Python39libsite-packagestensorflowpythoneagermonitoring.py", line 360, in __init__
    super(BoolGauge, self).__init__('BoolGauge', _bool_gauge_methods,
  File "C:Python39libsite-packagestensorflowpythoneagermonitoring.py", line 135, in __init__
    self._metric = self._metric_methods[self._label_length].create(*args)
tensorflow.python.framework.errors_impl.
AlreadyExistsError: Another metric with the same name already exists.
 

Окружающая среда:

Версия Python: 3.9

ОС: Windows

Библиотека: TensorFlow API

Комментарии:

1. Убедитесь, что вы не устанавливали tf-nightly и tf одновременно в одной и той же среде.

2. Если мой ответ помог вам, пожалуйста, не забудьте отметить его как лучший ответ, пожалуйста 🙂

Ответ №1:

Похоже, это ошибка с tensorflow 2.6 см. https://forums.developer.nvidia.com/t/unable-to-import-keras-models-on-tensorflow-2-6-0-jetpack-v46/191904

У меня была такая же проблема, и я решил ее, понизив рейтинг до tensorflow 2.5, пока проблема не будет решена в будущем обновлении.

** Редактировать: 2.7 отсутствует и, похоже, устранил проблему.

* Примечание: я использую tensorflow со своим процессором, а не с графическим процессором.

Ответ №2:

Обновление: TensorFlow уже выпустила версию 2.7.0 (здесь ), поэтому использование последней версии устранит вашу проблему. Эта конкретная ошибка была исправлена в версии 2.6.2, хотя на самом деле.


Вчера у меня возникла эта проблема во время выполнения задания сборки CI на Github, но код работал локально нормально.

Я решил это, временно понизив рейтинг до TensorFlow 2.5.2, пока проблема не будет решена в будущем обновлении.

Версия 2.5.2 является последней версией перед версией 2.6.0. Я подтвердил, что 2.6.0 и 2.6.1 не работали для меня (на момент написания).

Ответ №3:

Сегодня я столкнулся с примерно такой же проблемой при сборке CI, и вчера ее не было. Итак, я провел расследование, и, похоже, виновником является keras 2.7, а не tensorflow: https://github.com/keras-team/keras/issues/15585

С моей стороны, решением было ограничить индекс версии Keras до <2.7, но я сообщу, если будет реализовано более стабильное исправление.

Приветствия!

РЕДАКТИРОВАТЬ: исправленная версия TF 2.6.2 исправляет это (ранее ограничение свободной версии для keras). Так что либо добавьте ограничение <2.7.0 для keras с существующей версией TF, либо обновите до TF 2.6.2!

Ответ №4:

Здесь у вас есть две проблемы:

  1. Установка CUDA отсутствует.
  2. Проблема с библиотекой TensorFlow.

В первом случае вы можете выполнить процедуру, описанную здесь

Что касается проблемы с TensorFlow, то для меня сработало понижение Keras до 2.6.0 с использованием pip install keras==2.6.0 (на данный момент, вероятно, это должно быть 2.6.1) до той же версии, что и TensorFlow (в моем случае версия TensorFlow — 2.6.0). Пожалуйста, дайте мне знать, что это работает для вас.

Ответ №5:

Столкнулся с этим при запуске кода на внешнем графическом процессоре, решил проблему, обновив TensorFlow до версии 2.7