Pytorch: Tensorboard: ValueError: Plugins duplicados para projetor de nomes

Criado em 10 jul. 2019  ·  36Comentários  ·  Fonte: pytorch/pytorch

Acompanho a introdução e aconteceu esse erro.
cuda 10 , cudnn 7 , instale o pytorch por pip.

no entanto, quando eu verifico por

> torch.utils.tensorboard import SummaryWriter

, está tudo certo.

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
>>> 

mas quando eu 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

Comentários muito úteis

@Biaocsu , também encontrei o problema, mas resolvi. Meu método é:

  1. Baixei um script de teste em https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Eu o executei e ele me disse que tenho dois tensorboards com uma versão diferente. Além disso, ele me disse como consertar.
  3. Segui suas instruções e posso fazer meu tensorboard funcionar.

Acho que esse erro significa que você tem duas tensorboards instaladas, então o plugin será duplicado. Outro método seria útil para reinstalar o ambiente Python usando conda.

Espero ajudar você.

Todos 36 comentários

Isso soa como um problema de configuração incorreta com o tensorboard. @lanpa você sabe se isso é um bug do PyTorch ou não?

Eu tenho o mesmo problema: ser capaz de importar da versão mais recente do pytorch e tensorboardX, mas ambos dão o mesmo erro acima

Esse problema é causado por tb-nightly e tb-nightly é difícil de desinstalar.
Eu reconstruí o ambiente e uso o tensorflow, tensorboard, tensorboardx sem o tb-nightly dessa vez, e o problema foi embora.

@ LU4E o que você quer dizer com desinstalar tb-nightly e instalar tensorflow 、 tensorbard 、 tensorboardx? então o problema vai embora?

@Biaocsu Sim. Eu primeiro tento desinstalar o tb-nightly muitas vezes, mas ele ainda está lá. Não sei por quê.
Você pode construir um novo ambiente, instalar tensorflow, tensorboard, tensorboardx, espically, não instale tb-nightly.

@ LU4E não é adequado para mim, posso desinstalar com sucesso tb-nightly. e sim, estou realmente usando outro ambiente para usar tensorboard

@Biaocsu Encontrei o mesmo problema, mas resolvi desinstalando o tensorboard. Talvez o tensorboard remanescente seja ruim.

@YosukeSugiura obrigado pelo conselho, mas tentei e não surtiu efeito

@Biaocsu , também encontrei o problema, mas resolvi. Meu método é:

  1. Baixei um script de teste em https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Eu o executei e ele me disse que tenho dois tensorboards com uma versão diferente. Além disso, ele me disse como consertar.
  3. Segui suas instruções e posso fazer meu tensorboard funcionar.

Acho que esse erro significa que você tem duas tensorboards instaladas, então o plugin será duplicado. Outro método seria útil para reinstalar o ambiente Python usando conda.

Espero ajudar você.

@ElegantLin obrigado

Mesmo problema e obrigado pela solução de @ elad663 .
Mas a solução dada pelo script é desinstalar tensorboardX e tb-nightly, e instalar tensorflow.
Existe outra solução com ambiente puro pytorch?

Prioridade de atualização, pois este problema parece estar afetando muitas pessoas

@ezyang Acho que @ElegantLin forneceu a solução. A causa raiz é o conflito de versão do tensorboard.
@TomorrowIsAnOtherDay Você pode abrir um novo ambiente conda e pip instalar torch , tensorboard para uma configuração pytorch pura.

OK, nesse caso podemos encerrar 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`, ...

Essa sugestão gerada pelo script de @ElegantLin resolveu meu problema. Obrigado ~

Eu tive o mesmo problema, e desinstalar e reinstalar o tensorboard e o tensorflow não ajudou. No meu caso, eu tinha uma cópia fantasma do tensorboard 2.0.0 que aparentemente não foi desinstalada completamente. Ele apareceu no pip como "-ensorboard". Excluir a pasta dist-info correspondente em meu ambiente Python corrigiu o problema.

Alguém me ats (@). Sempre usei o conda para gerenciar meu ambiente Python. Portanto, se eu encontrasse o problema de não conseguir desinstalá-lo com êxito, eu excluiria o ambiente e reiniciaria um novo. Eu espero que isso ajude.

Eu tive esse problema no colab. Resolvido ao desinstalar o tensorboard atual e instalar tf-nightly

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

@Biaocsu , também encontrei o problema, mas resolvi. Meu método é:

  1. Baixei um script de teste em https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Eu o executei e ele me disse que tenho dois tensorboards com uma versão diferente. Além disso, ele me disse como consertar.
  3. Segui suas instruções e posso fazer meu tensorboard funcionar.

Acho que esse erro significa que você tem duas tensorboards instaladas, então o plugin será duplicado. Outro método seria útil para reinstalar o ambiente Python usando conda.

Espero ajudar você.

Eu tenho tensorflow 1.14 para python2 e tensorflow 2.0 para python3, este script não tem sugestões de ações. Isso significa que meu ambiente de tensorflow não tem problema?

aqui está o log de diagnóstico:

Diagnóstico


Saída de diagnóstico

`` `` ``
--- verificar: autoidentificar
INFO: diagnose_tensorboard.py versão 4725c70c7ed724e2d1b9ba5618d7c30b957ee8a4

--- verificar: geral
INFO: sys.version_info: sys.version_info (major = 3, minor = 6, micro = 8, releaselevel = '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 Qua 3 de abril 08:28 : 49 UTC 2019 ', máquina =' x86_64 ')
INFO: sys.getwindowsversion (): N / A

--- verificar: package_management
INFO: tem conda-meta: False
INFO: $ VIRTUAL_ENV: '/ home / zwang / env'

--- verifique: installed_packages
Traceback (última chamada mais recente):
Arquivo "/usr/lib/python3.6/runpy.py", linha 183, em _run_module_as_main
mod_name, mod_spec, code = _get_module_details (mod_name, _Error)
Arquivo "/usr/lib/python3.6/runpy.py", linha 142, em _get_module_details
return _get_module_details (pkg_main_name, erro)
Arquivo "/usr/lib/python3.6/runpy.py", linha 109, em _get_module_details
__import __ (pkg_name)
Arquivo "/usr/lib/python3/dist-packages/pip/__init__.py", linha 29, em
de pip.utils import get_installed_distributions, get_prog
Arquivo "/usr/lib/python3/dist-packages/pip/utils/__init__.py", linha 30, em
de pip._vendor.retrying nova tentativa de importação
ModuleNotFoundError: Nenhum módulo denominado 'pip._vendor.retrying'
Traceback (última chamada mais recente):
Arquivo "tensorboarddebug.py", linha 420, no principal
sugestões.extend (verificar ())
Arquivo "tensorboarddebug.py", linha 165, em installed_packages
freeze = pip (["freeze", "--all"]). decode ("utf-8"). splitlines ()
Arquivo "tensorboarddebug.py", linha 104, em pip
return subprocess.check_output (comando)
Arquivo "/usr/lib/python3.6/subprocess.py", linha 356, em check_output
** kwargs) .stdout
Arquivo "/usr/lib/python3.6/subprocess.py", linha 438, em execução
output = stdout, stderr = stderr)
subprocess.CalledProcessError: Comando '[' / home / zwang / env / bin / python3 ',' -m ',' pip ',' --disable-pip-version-check ',' freeze ',' --all ' ] 'retornou o status de saída 1 diferente de zero.

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

--- verifique: tensorflow_python_version
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido 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: Passando (tipo, 1) ou '1tipo' como sinônimo de tipo está obsoleto; em uma versão futura de numpy, será entendido como (tipo, (1,)) / '(1,) tipo'.
np_resource = np.dtype ([("recurso", np.ubyte, 1)])
INFO: tensorflow .__ version__: '1.14.0'
INFO: tensorflow .__ git_version__: 'v1.14.0-rc1-22-gaf24dc91b5'

--- verificar: tensorboard_binary_path
INFO: qual tensorboard: b '/ home / zwang / .local / bin / tensorboardn'

--- verifique: readable_fqdn
INFO: socket.getfqdn (): 'mrt214.mrt.uni-karlsruhe.de'

--- verifique: stat_tensorboardinfo
INFO: diretório: /tmp/.tensorboard-info
INFO: o diretório .tensorboard-info não existe

--- verifique: 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): []

--- verifique: full_pip_freeze
Traceback (última chamada mais recente):
Arquivo "/usr/lib/python3.6/runpy.py", linha 183, em _run_module_as_main
mod_name, mod_spec, code = _get_module_details (mod_name, _Error)
Arquivo "/usr/lib/python3.6/runpy.py", linha 142, em _get_module_details
return _get_module_details (pkg_main_name, erro)
Arquivo "/usr/lib/python3.6/runpy.py", linha 109, em _get_module_details
__import __ (pkg_name)
Arquivo "/usr/lib/python3/dist-packages/pip/__init__.py", linha 29, em
de pip.utils import get_installed_distributions, get_prog
Arquivo "/usr/lib/python3/dist-packages/pip/utils/__init__.py", linha 30, em
de pip._vendor.retrying nova tentativa de importação
ModuleNotFoundError: Nenhum módulo denominado 'pip._vendor.retrying'
Traceback (última chamada mais recente):
Arquivo "tensorboarddebug.py", linha 420, no principal
sugestões.extend (verificar ())
Arquivo "tensorboarddebug.py", linha 77, no wrapper
resultado = fn ()
Arquivo "tensorboarddebug.py", linha 388, em full_pip_freeze
logging.info ("pip freeze - all: n% s ", pip (["freeze", "--all"]). decode ("utf-8"))
Arquivo "tensorboarddebug.py", linha 104, em pip
return subprocess.check_output (comando)
Arquivo "/usr/lib/python3.6/subprocess.py", linha 356, em check_output
** kwargs) .stdout
Arquivo "/usr/lib/python3.6/subprocess.py", linha 438, em execução
output = stdout, stderr = stderr)
subprocess.CalledProcessError: Comando '[' / home / zwang / env / bin / python3 ',' -m ',' pip ',' --disable-pip-version-check ',' freeze ',' --all ' ] 'retornou o status de saída 1 diferente de zero.
`` `` ``

Próximos passos

Nenhum item de ação identificado. Copie TODOS os resultados acima,
incluindo as linhas contendo apenas crases, em seu problema de GitHub
ou comentário. Certifique-se de editar todas as informações confidenciais.

Execute o seguinte código se ele mostrar dois tensorboard instalados em seu sistema, remova um.

import pkg_resources

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

como você remove seletivamente uma versão do tensorboard

Próximos passos

Nenhum item de ação identificado. Copie TODOS os resultados acima,
incluindo as linhas contendo apenas crases, em seu problema de GitHub
ou comentário. Certifique-se de editar todas as informações confidenciais.

@Biaocsu , também encontrei o problema, mas resolvi. Meu método é:

  1. Baixei um script de teste em https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Eu o executei e ele me disse que tenho dois tensorboards com uma versão diferente. Além disso, ele me disse como consertar.
  3. Segui suas instruções e posso fazer meu tensorboard funcionar.

Acho que esse erro significa que você tem duas tensorboards instaladas, então o plugin será duplicado. Outro método seria útil para reinstalar o ambiente Python usando conda.

Espero ajudar você.

Eu resolvi meu problema. Muito obrigado!

Eu corrijo o problema seguindo as etapas:

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

Eu tive esse problema no colab. Resolvido ao desinstalar o tensorboard atual e instalar tf-nightly

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

Vou jogar meus $ 0,02 e lembrá-lo de também
!conda remove tensorboard

Se você estiver executando em um ambiente Windows!

Olá, tive o mesmo problema hoje e resolvi com as seguintes etapas simples:
Naveguei até o diretório de onde vinha o erro - site-packages - tensorboard.
Como o tf.contrib da API de detecção de objeto do tensorflow não funciona no tensorflow 2.0, instalei o tensorflow 1.14 em meu computador para executar o modelo de detecção.
Então, quando eu naveguei para o diretório 'tensorboard' dentro do site-packages - encontrei "tensorboar-2.0.2.dist-info e tensorflow_estimator-2.0.2.dist-info '. Eu removi esses arquivos do diretório, o problema foi resolvido.

Execute o seguinte código se ele mostrar dois tensorboard instalados em seu sistema, remova um.

import pkg_resources

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

Depois de executar este código, obtive a saída abaixo:

-ensorboard 2.0.2
tensorboard 2.0.0

Isso significa que tenho dois tensorboard instalados?

Execute o seguinte código se ele mostrar dois tensorboard instalados em seu sistema, remova um.

import pkg_resources

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

Depois de executar este código, obtive a saída abaixo:

-ensorboard 2.0.2
tensorboard 2.0.0

Isso significa que tenho dois tensorboard instalados?

Resolvido!
Excluí a pasta tensorboard-2.0.0.dist-info de Lib/site-packages e o tensorboard funcionou.
Mas não sei se causaria outro problema ou não.

Eu também estava pensando o mesmo, se algum erro aparecer, porém, nenhum enfrentou até agora ...
A maneira mais segura é não excluir, no entanto, manter os arquivos em outro lugar ... já que o python pesquisa o arquivo apenas naquela pasta específica e fica confuso :)

no meu caso, desinstalei o tensorboard-plugin-wit e funciona.

no meu caso, desinstalei o tensorboard-plugin-wit e funciona.

Funcionou para mim também. Obrigado!
E não consegui remover o pacote do comando conda, então encontrei manualmente o caminho da pasta tensorboard-plugin-wit e removi-o no diretório de arquivos.

Resumindo, para os retardatários, pessoalmente eu mesmo encontrei todos esses erros atualizando e rebaixando o tensorflow e o tensorboard.

Sintoma 1 Tensorboard: ValueError: Duplicate plugins for name projector

Baixe o script de diagnóstico:

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

Execute-o e siga suas instruções:

python diagnose_tensorboard.py

Sintoma 2 Tensorboard: ValueError: Duplicate plugins for name projector e o script de diagnóstico não mostra nenhuma ação

Execute pip freeze para ver se você recebe este aviso WARNING: Could not generate requirement for distribution -ensorboard 2.1.0

Se sim, então existe uma cópia fantasma do tensorboard. Felizmente, a correção abaixo não tem efeito colateral, não tenho certeza sobre isso.

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

Sintoma 3: Tensorboard: ValueError: Duplicate plugins for name whatif

pip uninstall tensorboard-plugin-wit

no meu caso, desinstalei o tensorboard-plugin-wit e funciona.

Funcionou para mim também, tive esse problema no Colab

A solução a seguir SEMPRE funciona para mim, independentemente das atualizações feitas no tensorboard (por exemplo: O novo pacote tensorboard-plugin-wit lançado em fevereiro de 2020, está causando problemas para muitas pessoas aqui e pode haver outras atualizações no futuro).

Adicione o seguinte trecho de código em cada tutorial colab antes de carregar o 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 , também encontrei o problema, mas resolvi. Meu método é:

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.

Acho que esse erro significa que você tem duas tensorboards instaladas, então o plugin será duplicado. Outro método seria útil para reinstalar o ambiente Python usando conda.

Espero ajudar você.

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

Próximos passos

Nenhum item de ação identificado. Copie TODOS os resultados acima,
incluindo as linhas contendo apenas crases, em seu problema de GitHub
ou comentário. Certifique-se de editar todas as informações confidenciais.

mesmo problema

Esta página foi útil?
5 / 5 - 1 avaliações

Questões relacionadas

SeparateReality picture SeparateReality  ·  3Comentários

kdexd picture kdexd  ·  3Comentários

bartolsthoorn picture bartolsthoorn  ·  3Comentários

mishraswapnil picture mishraswapnil  ·  3Comentários

soumith picture soumith  ·  3Comentários