이 질문은 Stackoverflow와 Superuser 사이의 어딘가에 있습니다. 적어도 제 생각에는 이것이 잘못된 위치라면 자유롭게 알려주세요(귀하의 의견으로는 ;)).
문제:
Python 코드에 중단점을 배치하면 디버거가 중지됩니다. 다음 줄로 넘어가고 싶다면 그렇게 할 것입니다. 하지 않는 한열거(데이터로더) 후에 발생합니다. enumerate(dataloader) 뒤에 중단점을 배치하면 디버거도 중지됩니다. 그러나 나는 그때 밟을 수 없다. enumerate(dataloader) 앞에 중단점을 배치하고 enumerate 라인을 넘어가는 경우에도 마찬가지입니다. enumerate(..) 다음 줄에서는 작동하지 않습니다.
흥미로운 사실은 최근까지만 해도 효과가 있었다는 것입니다. 일주일 전까지만 해도 그랬습니다.
# 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
이 문제를 해결하기 위해 무엇을 시도했습니까?
- PyCharm을 제거하고 다시 설치했습니다.
- Community Edition을 사용해 보았습니다.
- Cython 디버거 확장이 있거나 없는 두 버전을 모두 실행해 보았습니다.
- 작동이 멈춘 후 어떤 것을 설치했는지 확인하고 제거했습니다.
- Jetbrains, SO 및 Pytorch 포럼에서 수많은 게시물을 확인했습니다. 흥미로워 보이는 몇 가지를 찾았지만 실제로는 내 문제에 맞지 않았습니다.
- 다른 CUDA 버전과 cudnn 버전을 사용해 보았습니다.
지금까지 아무 것도 효과가 없었습니다. OS를 다시 설치하고 싶지는 않습니다. 그러면 도움이 될 것 같지만, 분명한 이유로 그것은 내가 원하는 것이 아닙니다. 이런 종류의 행동을 경험한 적이 있고 나를 도와줄 수 있는 사람이 있습니까? 미리 감사드립니다. 자세한 내용은 언제든지 문의해 주세요. 최대한 많은 세부정보를 제공하도록 노력하겠습니다.
내 설정에 대한 몇 가지 세부 사항을 나열하겠습니다.
운영체제:
- 인텔® 코어™ i7-7700K CPU @ 4.20GHz × 8
- 엔비디아 RTX 2080TI
- NVIDIA-SMI 430.26 드라이버 버전: 430.26 CUDA 버전: 10.2
- 우분투 18.04
소프트웨어:
- PyCharm 커뮤니티 및 EDU 2019.2
- (아나콘다
- cudnn도 설치됨
- pytorch와 필요한 모든 것(numpy, scipy, matplotlib 등)이 포함된 Python 3.6 및 Python 3.7용 conda env 2개
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
답변1
나는 몇 주 동안 같은 문제를 겪었고 방금 고쳤습니다! 해결책은 객체 생성 중에 로 num_workers
설정하는 것이었습니다 .0
DataLoader