Pycharm 调试器不适用于 pytorch 和深度学习

Pycharm 调试器不适用于 pytorch 和深度学习

至少在我看来,这个问题介于 Stackoverflow 和 Superuser 之间,所以如果这是错误的地方(在您看来;)),请随时指出我。

问题:

如果我在 Python 代码中放置断点,调试器就会停止。如果我想进入下一行,它就会这样做。 除非它发生在枚举(数据加载器)之后。我可以在枚举(数据加载器)之后放置一个断点,调试器也会停止。但是我无法单步执行。如果我在枚举(数据加载器)之前放置断点并跨过枚举行,也会发生同样的情况。它不适用于枚举(..)之后的行。

有趣的是,它直到最近才开始发挥作用——大约一周前

# 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
  • Nvidia RTX 2080 TI
  • NVIDIA-SMI 430.26 驱动程序版本:430.26 CUDA 版本:10.2
  • Ubuntu 18.04

软件:

  • PyCharm 社区和 EDU 2019.2
  • (Ana)conda(水蟒)
  • 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为。0DataLoader

相关内容