Pytorch: Tensorboard: ValueError: complementos duplicados para el proyector de nombres

Creado en 10 jul. 2019  ·  36Comentarios  ·  Fuente: pytorch/pytorch

Sigo la introducción y me pasó este error.
cuda 10 , cudnn 7 , instala pytorch por pip.

sin embargo, cuando miro por

> torch.utils.tensorboard import SummaryWriter

, Está bien.

Python 3.7.3 | packaged by conda-forge | (default, Jul  1 2019, 21:52:21) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from torch.utils.tensorboard import SummaryWriter
>>> 

pero cuando uso

> tensorboard --logdir=runs, it happens to this error:

`Traceback (most recent call last):
  File "/home/kingsoft/anaconda3/envs/liubiao2/bin/tensorboard", line 10, in <module>
    sys.exit(run_main())
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/main.py", line 64, in run_main
    app.run(tensorboard.main, flags_parser=tensorboard.configure)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/program.py", line 228, in main
    server = self._make_server()
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/program.py", line 309, in _make_server
    self.assets_zip_provider)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/backend/application.py", line 161, in standard_tensorboard_wsgi
    reload_task)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/backend/application.py", line 194, in TensorBoardWSGIApp
    return TensorBoardWSGI(plugins, path_prefix)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/backend/application.py", line 245, in __init__
    raise ValueError('Duplicate plugins for name %s' % plugin.plugin_name)
ValueError: Duplicate plugins for name projector`
high priority dependency bug tensorboard triage review triaged

Comentario más útil

@Biaocsu , también encontré el problema pero lo arreglé. Mi método es:

  1. Descargué un script de prueba de https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Lo ejecuté y me dijo que tengo dos tensorboards con una versión diferente. Además, me dijo cómo solucionarlo.
  3. Seguí sus instrucciones y puedo hacer que mi tensorboard funcione.

Creo que este error significa que tiene dos tensorboards instalados, por lo que el complemento se duplicará. Otro método sería útil que es reinstalar el entorno de Python usando conda.

Espero poder ayudarte.

Todos 36 comentarios

Esto suena como un problema de configuración incorrecta con tensorboard. @lanpa , ¿sabes si esto es un error de PyTorch o no?

Tengo el mismo problema: poder importar desde la última versión de pytorch y tensorboardX pero ambos dan el mismo error anterior

Este problema es causado por tb-nightly, y tb-nightly es difícil de desinstalar.
Reconstruí el entorno y uso tensorflow, tensorboard, tensorboardx sin tb-nightly esta vez, y el problema desapareció.

@ LU4E ¿qué quieres decir con desinstalar tb-nightly e instalar tensorflow 、 tensorbard 、 tensorboardx? entonces el problema desaparecerá?

@Biaocsu Sí. Primero intento desinstalar el tb-nightly muchas veces pero sigue ahí. No sé por qué.
Puede crear un nuevo entorno, instalar tensorflow, tensorboard, tensorboardx, especialmente, no instale tb-nightly.

@ LU4E no es adecuado para mí, puedo desinstalar con éxito tb-nightly. y sí, realmente estoy usando otro entorno para usar tensorboard

@Biaocsu He encontrado el mismo problema pero resuelto desinstalando tensorboard. Quizás el tensorboard restante sea malo.

@YosukeSugiura gracias por tu consejo, pero lo intenté y no tiene efecto

@Biaocsu , también encontré el problema pero lo arreglé. Mi método es:

  1. Descargué un script de prueba de https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Lo ejecuté y me dijo que tengo dos tensorboards con una versión diferente. Además, me dijo cómo solucionarlo.
  3. Seguí sus instrucciones y puedo hacer que mi tensorboard funcione.

Creo que este error significa que tiene dos tensorboards instalados, por lo que el complemento se duplicará. Otro método sería útil que es reinstalar el entorno de Python usando conda.

Espero poder ayudarte.

@ElegantLin gracias

Mismo problema, y ​​gracias por la solución de @ elad663 .
Pero la solución dada por el script es desinstalar tensorboardX y tb-nightly, e instalar tensorflow.
¿Existe otra solución con entorno pytorch puro?

Prioridad de actualización ya que este problema parece afectar a muchas personas

@ezyang Creo que @ElegantLin ha proporcionado la solución. La causa principal es el conflicto de la versión del tensorboard.
@TomorrowIsAnOtherDay Puede abrir un nuevo entorno de conda e instalar pip torch , tensorboard para una configuración de pytorch pura.

Bien, en ese caso podemos cerrar este problema.

### Suggestion: Fix conflicting installations

Conflicting package installations found. Depending on the order of
installations and uninstallations, behavior may be undefined. Please
uninstall ALL versions of TensorFlow and TensorBoard, then reinstall
ONLY the desired version of TensorFlow, which will transitively pull
in the proper version of TensorBoard. (If you use TensorBoard without
TensorFlow, just reinstall the appropriate version of TensorBoard
directly.)

Namely:

    pip uninstall tb-nightly tensorboard tensorflow-estimator tensorflow-gpu tf-estimator-nightly
    pip install tensorflow  # or `tensorflow-gpu`, or `tf-nightly`, ...

Esta sugerencia generada por el script de

Experimenté el mismo problema, y ​​desinstalar y reinstalar tensorboard y tensorflow no ayudó. En mi caso, tenía una copia fantasma de tensorboard 2.0.0 que aparentemente no se había desinstalado por completo. Apareció en pip como "-ensorboard". Eliminar la carpeta dist-info correspondiente en mi entorno de Python solucionó el problema.

Alguien me ats (@). Siempre usé conda para administrar mi entorno Python. Entonces, si encontraba el problema de que no podía desinstalarlo correctamente, eliminaría el entorno y reiniciaría uno nuevo. Espero que esto ayude.

Tuve este problema en colab. Se resuelve desinstalando el tensorboard actual e instalando tf-nightly

!pip uninstall tensorboard
!pip install -U transformers torch torchvision tensorboardX tf-nightly grpcio==1.24.3

@Biaocsu , también encontré el problema pero lo arreglé. Mi método es:

  1. Descargué un script de prueba de https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Lo ejecuté y me dijo que tengo dos tensorboards con una versión diferente. Además, me dijo cómo solucionarlo.
  3. Seguí sus instrucciones y puedo hacer que mi tensorboard funcione.

Creo que este error significa que tiene dos tensorboards instalados, por lo que el complemento se duplicará. Otro método sería útil que es reinstalar el entorno de Python usando conda.

Espero poder ayudarte.

Tengo tensorflow 1.14 para python2 y tensorflow 2.0 para python3, este script no tiene sugerencias de acciones. ¿Significa que mi entorno de tensorflow no tiene ningún problema?

aquí está el registro de diagnóstico:

Diagnóstico


Salida de diagnóstico

`` `` ``
--- comprobar: autoidentificar
INFORMACIÓN: diagnóstico_tensorboard.py versión 4725c70c7ed724e2d1b9ba5618d7c30b957ee8a4

--- comprobar: general
INFO: sys.version_info: sys.version_info (mayor = 3, menor = 6, micro = 8, nivel de lanzamiento = 'final', serial = 0)
INFO: os.name: posix
INFO: os.uname (): posix.uname_result (sysname = 'Linux', nodename = 'mrt214', release = '4.15.0-48-generic', version = '# 51-Ubuntu SMP Mié 3 de abril 08:28 : 49 UTC de 2019 ', máquina =' x86_64 ')
INFO: sys.getwindowsversion (): N / A

--- comprobar: gestión_paquetes
INFO: has conda-meta: False
INFO: $ VIRTUAL_ENV: '/ home / zwang / env'

--- comprobar: paquetes_instalados
Rastreo (llamadas recientes más última):
Archivo "/usr/lib/python3.6/runpy.py", línea 183, en _run_module_as_main
mod_name, mod_spec, code = _get_module_details (mod_name, _Error)
Archivo "/usr/lib/python3.6/runpy.py", línea 142, en _get_module_details
return _get_module_details (pkg_main_name, error)
Archivo "/usr/lib/python3.6/runpy.py", línea 109, en _get_module_details
__importar __ (nombre_paquete)
Archivo "/usr/lib/python3/dist-packages/pip/__init__.py", línea 29, en
desde pip.utils importar get_installed_distributions, get_prog
Archivo "/usr/lib/python3/dist-packages/pip/utils/__init__.py", línea 30, en
de pip._vendor.retrying import reintentar
ModuleNotFoundError: ningún módulo llamado 'pip._vendor.retrying'
Rastreo (llamadas recientes más última):
Archivo "tensorboarddebug.py", línea 420, en main
sugerencias.extender (comprobar ())
Archivo "tensorboarddebug.py", línea 165, en installed_packages
congelar = pip (["congelar", "--todos"]). decodificar ("utf-8"). splitlines ()
Archivo "tensorboarddebug.py", línea 104, en pip
return subprocess.check_output (comando)
Archivo "/usr/lib/python3.6/subprocess.py", línea 356, en check_output
** kwargs) .stdout
Archivo "/usr/lib/python3.6/subprocess.py", línea 438, en ejecución
salida = stdout, stderr = stderr)
subprocess.CalledProcessError: Comando '[' / home / zwang / env / bin / python3 ',' -m ',' pip ',' --disable-pip-version-check ',' freeze ',' --all ' ] 'devolvió un estado de salida 1 distinto de cero.

--- comprobar: tensorboard_python_version
INFO: tensorboard.version.VERSION: '1.14.0'

--- comprobar: tensorflow_python_version
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_qint8 = np.dtype ([("qint8", np.int8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_quint8 = np.dtype ([("quint8", np.uint8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_qint16 = np.dtype ([("qint16", np.int16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_quint16 = np.dtype ([("quint16", np.uint16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_qint32 = np.dtype ([("qint32", np.int32, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Pasar (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
np_resource = np.dtype ([("recurso", np.ubyte, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_qint8 = np.dtype ([("qint8", np.int8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está obsoleto; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_quint8 = np.dtype ([("quint8", np.uint8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está obsoleto; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_qint16 = np.dtype ([("qint16", np.int16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_quint16 = np.dtype ([("quint16", np.uint16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
_np_qint32 = np.dtype ([("qint32", np.int32, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) o '1type' como sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como (tipo, (1,)) / '(1,) tipo'.
np_resource = np.dtype ([("recurso", np.ubyte, 1)])
INFO: tensorflow .__ versión__: '1.14.0'
INFORMACIÓN: tensorflow .__ git_version__: 'v1.14.0-rc1-22-gaf24dc91b5'

--- comprobar: tensorboard_binary_path
INFO: qué tensorboard: b '/ home / zwang / .local / bin / tensorboardn'

--- comprobar: readable_fqdn
INFORMACIÓN: socket.getfqdn (): 'mrt214.mrt.uni-karlsruhe.de'

--- comprobar: stat_tensorboardinfo
INFO: directorio: /tmp/.tensorboard-info
INFO: el directorio .tensorboard-info no existe

--- comprobar: source_trees_without_genfiles
INFO: tensorboard_roots (2): ['/home/zwang/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages']; bad_roots (0): []

--- comprobar: full_pip_freeze
Rastreo (llamadas recientes más última):
Archivo "/usr/lib/python3.6/runpy.py", línea 183, en _run_module_as_main
mod_name, mod_spec, code = _get_module_details (mod_name, _Error)
Archivo "/usr/lib/python3.6/runpy.py", línea 142, en _get_module_details
return _get_module_details (pkg_main_name, error)
Archivo "/usr/lib/python3.6/runpy.py", línea 109, en _get_module_details
__importar __ (nombre_paquete)
Archivo "/usr/lib/python3/dist-packages/pip/__init__.py", línea 29, en
desde pip.utils importar get_installed_distributions, get_prog
Archivo "/usr/lib/python3/dist-packages/pip/utils/__init__.py", línea 30, en
de pip._vendor.retrying import reintentar
ModuleNotFoundError: ningún módulo llamado 'pip._vendor.retrying'
Rastreo (llamadas recientes más última):
Archivo "tensorboarddebug.py", línea 420, en main
sugerencias.extender (comprobar ())
Archivo "tensorboarddebug.py", línea 77, en contenedor
resultado = fn ()
Archivo "tensorboarddebug.py", línea 388, en full_pip_freeze
logging.info ("pip congelar - todo: n% s ", pip (["congelar", "--todos"]). decode ("utf-8"))
Archivo "tensorboarddebug.py", línea 104, en pip
return subprocess.check_output (comando)
Archivo "/usr/lib/python3.6/subprocess.py", línea 356, en check_output
** kwargs) .stdout
Archivo "/usr/lib/python3.6/subprocess.py", línea 438, en ejecución
salida = stdout, stderr = stderr)
subprocess.CalledProcessError: Comando '[' / home / zwang / env / bin / python3 ',' -m ',' pip ',' --disable-pip-version-check ',' freeze ',' --all ' ] 'devolvió un estado de salida 1 distinto de cero.
`` `` ``

Próximos pasos

No se identificaron elementos de acción. Copie TODA la salida anterior,
incluyendo las líneas que contienen solo comillas invertidas, en su problema de GitHub
o comentar. Asegúrese de redactar cualquier información confidencial.

Ejecute el siguiente código si muestra dos tensorboard instalados en su sistema, elimine uno.

import pkg_resources

for entry_point in pkg_resources.iter_entry_points('tensorboard_plugins'):
    print(entry_point.dist)

¿Cómo se elimina selectivamente una versión de tensorboard?

Próximos pasos

No se identificaron elementos de acción. Copie TODA la salida anterior,
incluyendo las líneas que contienen solo comillas invertidas, en su problema de GitHub
o comentar. Asegúrese de redactar cualquier información confidencial.

@Biaocsu , también encontré el problema pero lo arreglé. Mi método es:

  1. Descargué un script de prueba de https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Lo ejecuté y me dijo que tengo dos tensorboards con una versión diferente. Además, me dijo cómo solucionarlo.
  3. Seguí sus instrucciones y puedo hacer que mi tensorboard funcione.

Creo que este error significa que tiene dos tensorboards instalados, por lo que el complemento se duplicará. Otro método sería útil que es reinstalar el entorno de Python usando conda.

Espero poder ayudarte.

Resolví mi problema. ¡Muchas gracias!

Soluciono el problema siguiendo los pasos:

  • pip desinstalar tb-nightly tensorboardX tensorboard
  • pip instalar tensorboard

Tuve este problema en colab. Se resuelve desinstalando el tensorboard actual e instalando tf-nightly

!pip uninstall tensorboard
!pip install -U transformers torch torchvision tensorboardX tf-nightly grpcio==1.24.3

Lanzaré mis $ 0.02 y les recordaré que también
!conda remove tensorboard

¡Si está ejecutando en un entorno de Windows!

Hola, tuve el mismo problema hoy y lo solucioné con los siguientes pasos simples:
Navegué hasta el directorio de donde venía el error - site-packages - tensorboard.
Dado que, la API de detección de objetos de tensorflow tf.contrib no funciona en tensorflow 2.0, tenía tensorflow 1.14 instalado en mi computadora para ejecutar el modelo de detección.
Entonces, cuando navegué al directorio 'tensorboard' dentro de los paquetes de sitio, encontré "tensorboar-2.0.2.dist-info y tensorflow_estimator-2.0.2.dist-info '. Eliminé estos archivos del directorio y El problema fue resuelto.

Ejecute el siguiente código si muestra dos tensorboard instalados en su sistema, elimine uno.

import pkg_resources

for entry_point in pkg_resources.iter_entry_points('tensorboard_plugins'):
    print(entry_point.dist)

Después de ejecutar este código, obtuve el siguiente resultado:

-panel sensor 2.0.2
tensorboard 2.0.0

¿Significa que tengo dos tensorboard instalados?

Ejecute el siguiente código si muestra dos tensorboard instalados en su sistema, elimine uno.

import pkg_resources

for entry_point in pkg_resources.iter_entry_points('tensorboard_plugins'):
    print(entry_point.dist)

Después de ejecutar este código, obtuve el siguiente resultado:

-panel sensor 2.0.2
tensorboard 2.0.0

¿Significa que tengo dos tensorboard instalados?

¡Resuelto!
Eliminé la carpeta tensorboard-2.0.0.dist-info de Lib/site-packages luego tensorboard funciona.
Pero no sé si causaría otro problema o no.

También estaba pensando lo mismo, si aparece algún error, sin embargo, ninguno se ha enfrentado hasta ahora ...
La forma más segura es no eliminar, sin embargo, mantenga los archivos en otro lugar ... ya que Python busca el archivo solo en esa carpeta específica y se confunde :)

en mi caso, desinstalé tensorboard-plugin-wit y funciona.

en mi caso, desinstalé tensorboard-plugin-wit y funciona.

A mí también me funcionó. ¡Gracias!
Y no pude eliminar el paquete del comando conda, así que encontré manualmente la ruta de la carpeta tensorboard-plugin-wit y la eliminé en el directorio de archivos.

Resumiendo para los recién llegados, personalmente me he encontrado con todos estos errores al actualizar y degradar tensorflow y tensorboard.

Síntoma 1 Tensorboard: ValueError: Duplicate plugins for name projector

Descargar el script de diagnóstico:

wget https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py

Ejecútelo y siga sus instrucciones:

python diagnose_tensorboard.py

Síntoma 2 Tensorboard: ValueError: Duplicate plugins for name projector y el script de diagnóstico no muestra ninguna acción

Ejecute pip freeze para ver si recibe esta advertencia WARNING: Could not generate requirement for distribution -ensorboard 2.1.0

Si es así, entonces hay una copia fantasma de tensorboard. Con suerte, la solución a continuación no tiene ningún efecto secundario, no estoy seguro.

cd <site-packages>
rm -rf "~ensorboard"
rm -rf "~ensorboard-2.1.0.dist-info"

Síntoma 3: Tensorboard: ValueError: Duplicate plugins for name whatif

pip uninstall tensorboard-plugin-wit

en mi caso, desinstalé tensorboard-plugin-wit y funciona.

También funcionó para mí, tuve este problema con Colab

La siguiente solución SIEMPRE funciona para mí, independientemente de las actualizaciones realizadas en tensorboard (por ejemplo: el nuevo paquete tensorboard-plugin-wit lanzado en febrero de 2020, está causando problemas a muchas personas aquí, y puede haber otras actualizaciones en el futuro).

Agregue el siguiente fragmento de código en cada tutorial de colab antes de cargar tensorboard.

# Remove all TensorBoard packages.
! pip list --format=freeze | grep tensorboard | xargs pip uninstall -y
# Install TensorFlow again (This command will only install the default TensorBoard package associated with this TensorFlow package). 
! pip install -q tensorflow

@Biaocsu , también encontré el problema pero lo arreglé. Mi método es:

1. I downloaded a test script from https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py

2. I run it and it told me that I have two tensorboards with a different version. Also, it told me how to fix it.

3. I followed its instructions and I can make my tensorboard work.

Creo que este error significa que tiene dos tensorboards instalados, por lo que el complemento se duplicará. Otro método sería útil que es reinstalar el entorno de Python usando conda.

Espero poder ayudarte.

VOCE É UM MONSTRO, UM DEUS O MAIS FODA DE TODOS DENTRO DOS OS PROGRAMADORES

Próximos pasos

No se identificaron elementos de acción. Copie TODA la salida anterior,
incluyendo las líneas que contienen solo comillas invertidas, en su problema de GitHub
o comentar. Asegúrese de redactar cualquier información confidencial.

el mismo problema

¿Fue útil esta página
5 / 5 - 1 calificaciones