Pycharmデバッガーはpytorchとディープラーニングでは動作しません

Pycharmデバッガーはpytorchとディープラーニングでは動作しません

この質問は、少なくとも私の意見では、Stackoverflow と Superuser の中間あたりにあるので、これが間違った場所である場合は (あなたの意見では ;))、遠慮なく SO を教えてあげてください。

問題:

Python コードにブレークポイントを設定すると、デバッガーが停止します。次の行にステップインしたい場合は、ステップインします。 ない限りenumerate(dataloader) の後に発生します。enumerate(dataloader) の後にブレークポイントを配置でき、デバッガーも停止します。ただし、ステップ実行できません。enumerate(dataloader) の前にブレークポイントを配置し、enumerate 行をステップ オーバーした場合も同じことが起こります。enumerate(..) の後の行では機能しません。

興味深いのは、最近まで、つまり1週間前までは機能していたということです

# 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エディションを使ってみました。
  • Cython デバッガー拡張機能ありとなしで両方のバージョンを実行してみました。
  • 動作しなくなった後にインストールしたものを確認し、削除しました。
  • Jetbrains、SO、Pytorch フォーラムで多数の投稿を確認しました。興味深いものもいくつか見つかりましたが、実際のところ私の問題には当てはまりませんでした。
  • さまざまな CUDA バージョンと cudnn バージョンを使用してみました。

今のところ何も機能していません... OS を再インストールしたくありません。おそらくそれが役に立つでしょうが、明らかな理由から、それは私が望んでいることではありません。このような動作を経験したことがある方、私を助けてくれる方はいらっしゃいますか? よろしくお願いします。追加の詳細についてお気軽にお問い合わせください。できるだけ多くの詳細を提供するよう努めます。

私のセットアップの詳細をいくつか挙げます。

OS:

  • インテル® Core™ i7-7700K CPU @ 4.20GHz × 8
  • エヌビディアRTX2080TI
  • NVIDIA-SMI 430.26 ドライバー バージョン: 430.26 CUDA バージョン: 10.2
  • ウブントゥ 18.04

ソフトウェア:

  • PyCharm コミュニティと EDU 2019.2
  • (アナ)コンダ
  • cudnnもインストール済み
  • python 3.6 と python 3.7 用の 2 つの 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

関連情報