如何修复错误:无法注册具有相同名称的 2 个指标:/tensorflow/api/keras/optimizers

GEO*_*MBA 8 keras tensorflow python-3.9

当我尝试利用 TensorFlow 库运行用于深度学习的 Python 代码时,出现以下错误:

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:\Users\Admin\Downloads\Compressed\Face-Mask-Detection-master\detect_mask_image.py", line 5, in <module>
    from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
  File "C:\Python39\lib\site-packages\keras\api\_v2\keras\__init__.py", line 8, in <module>
    from keras import __version__
  File "C:\Python39\lib\site-packages\keras\__init__.py", line 25, in <module>
    from keras import models
  File "C:\Python39\lib\site-packages\keras\models.py", line 20, in <module>
    from keras import metrics as metrics_module
  File "C:\Python39\lib\site-packages\keras\metrics.py", line 26, in <module>
    from keras import activations
  File "C:\Python39\lib\site-packages\keras\activations.py", line 20, in <module>
    from keras.layers import advanced_activations
  File "C:\Python39\lib\site-packages\keras\layers\__init__.py", line 23, in <module>
    from keras.engine.input_layer import Input
  File "C:\Python39\lib\site-packages\keras\engine\input_layer.py", line 21, in <module>
    from keras.engine import base_layer
  File "C:\Python39\lib\site-packages\keras\engine\base_layer.py", line 43, in <module>
    from keras.mixed_precision import loss_scale_optimizer
  File "C:\Python39\lib\site-packages\keras\mixed_precision\loss_scale_optimizer.py", line 18, in <module>
    from keras import optimizers
  File "C:\Python39\lib\site-packages\keras\optimizers.py", line 26, in <module>
    from keras.optimizer_v2 import adadelta as adadelta_v2
  File "C:\Python39\lib\site-packages\keras\optimizer_v2\adadelta.py", line 22, in <module>
    from keras.optimizer_v2 import optimizer_v2
  File "C:\Python39\lib\site-packages\keras\optimizer_v2\optimizer_v2.py", line 36, in <module>
    keras_optimizers_gauge = tf.__internal__.monitoring.BoolGauge(
  File "C:\Python39\lib\site-packages\tensorflow\python\eager\monitoring.py", line 360, in __init__
    super(BoolGauge, self).__init__('BoolGauge', _bool_gauge_methods,
  File "C:\Python39\lib\site-packages\tensorflow\python\eager\monitoring.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.
Run Code Online (Sandbox Code Playgroud)

环境:

Python版本:3.9

操作系统:Windows

库:TensorFlow API

Log*_*g23 10

这似乎是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 已发布,似乎已经解决了该问题。

*注意:我在 CPU 上使用 Tensorflow,而不是 GPU。


Dan*_*l T 8

更新:TensorFlow 现已发布版本2.7.0此处),因此使用最新版本将解决您的问题。实际上,这个特定的错误已在2.6.2版本中修复。


我昨天在 Github CI 构建作业中开始遇到这个问题,但代码在本地运行良好。

我通过暂时降级到 TensorFlow 2.5.2 来解决这个问题,直到问题在未来的更新中得到解决。

2.5.2版本是2.6.0版本之前的最新版本。我确认 2.6.0 和 2.6.1 不适合我(在撰写本文时)。