這個問題介於 Stackoverflow 和 Superuser 之間——至少在我看來,所以如果這是錯誤的地方(在你看來;)),請隨時指出我的問題。
問題:
如果我在 python 程式碼中放置斷點,偵錯器就會停止。如果我想進入下一行,它就會這樣做。 除非它發生在枚舉(資料載入器)之後。我可以在 enumerate(dataloader) 之後放置一個斷點,調試器也會停止。然而我不能踏出那一步。如果我在 enumerate(dataloader) 之前放置斷點並跳過欄位舉行,也會發生同樣的情況。它不適用於 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 並重新安裝了它。
- 我嘗試使用社群版。
- 我嘗試運行帶有和不帶 cython 調試器擴展的兩個版本。
- 我檢查了在它停止工作後安裝了哪些東西並將其刪除。
- 我檢查了 Jetbrains、SO 和 Pytorch 論壇上的大量帖子。發現一些看起來很有趣,但實際上不符合我的問題。
- 我嘗試使用不同的 CUDA 版本和 cudnn 版本。
到目前為止沒有任何效果......我真的不想重新安裝我的作業系統,這很可能會有所幫助,但是,是的,出於明顯的原因,這不是我想要的。有沒有人經歷過這種行為並且可以幫助我?提前致謝。請隨時詢問更多詳細資訊。我會盡力提供盡可能多的詳細信息
我將列出我的設定的一些詳細資訊:
作業系統:
- 英特爾® 酷睿™ i7-7700K CPU @ 4.20GHz × 8
- 英偉達 RTX 2080 TI
- NVIDIA-SMI 430.26 驅動程式版本:430.26 CUDA 版本:10.2
- 烏班圖18.04
軟體:
- PyCharm 社區和 EDU 2019.2
- (安娜)康達
- cudnn 也安裝了
- python 3.6 和 python 3.7 的兩個 conda 環境,帶有 pytorch 及其所需的一切(numpy、scipy、matplotlib 等)
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