O depurador Pycharm não funciona com pytorch e aprendizado profundo

O depurador Pycharm não funciona com pytorch e aprendizado profundo

Esta questão está em algum lugar entre Stackoverflow e Superusuário - pelo menos na minha opinião, então sinta-se à vontade para me indicar SO se este for o lugar errado (na sua opinião;)).

Problema:

Se eu colocar um ponto de interrupção no meu código python, o depurador será interrompido. Se eu quiser passar para a próxima linha, isso será feito. A menos queisso acontece depois de um enumerate(dataloader). Posso colocar um ponto de interrupção após enumerate(dataloader) e o depurador também para. No entanto, não posso pisar então. O mesmo acontece se eu colocar o ponto de interrupção antes de enumerate(dataloader) e passar por cima da linha enumerate. Não funcionará para a linha após enumerar(..).

O fato interessante é que funcionou até recentemente - há uma semana

# Breakpoints work, stepping over works
...
for epoch in range(num_epochs):
    for i, data in enumerate(dataloader, 0):
        # If I break before this line and I step until the next, I can not step afterwards
        netD.zero_grad()
        # Breakpoints work, stepping does not

O que eu tentei resolver isso:

  • Desinstalei o PyCharm e reinstalei-o.
  • Tentei usar a edição Community.
  • Tentei executar as duas versões com e sem a extensão do depurador cython.
  • Verifiquei quais coisas instalei depois que parou de funcionar e as removi.
  • Verifiquei várias postagens nos fóruns Jetbrains, SO e Pytorch. Encontrei alguns que pareciam interessantes, mas na verdade não se enquadravam no meu problema.
  • Tentei usar diferentes versões CUDA e cudnn.

Nada funcionou até agora... Eu realmente não quero reinstalar meu sistema operacional, o que provavelmente ajudaria, mas sim, por razões óbvias, não é isso que eu quero. Alguém JÁ passou por esse tipo de comportamento e pode me ajudar? Desde já, obrigado. Sinta-se à vontade para solicitar detalhes adicionais. Tentarei fornecer o máximo de detalhes possível

Vou listar alguns detalhes da minha configuração:

SO:

  • CPU Intel® Core™ i7-7700K a 4,20 GHz × 8
  • Nvidia RTX 2080 TI
  • Versão do driver NVIDIA-SMI 430.26: 430.26 Versão CUDA: 10.2
  • Ubuntu 18.04

Programas:

  • Comunidade PyCharm e EDU 2019.2
  • (Ana)conda
  • cudnn instalado também
  • Dois ambientes conda para python 3.6 e python 3.7 com pytorch e tudo que precisa (numpy, scipy, matplotlib, etc)

nvcc:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168

Responder1

Eu tive o mesmo problema por semanas e consegui corrigi-lo! A solução foi definir num_workersdurante 0a criação do DataLoaderobjeto.

informação relacionada