この質問は、少なくとも私の意見では、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
することでした。0
DataLoader