使用VSCode在pytorch下進行調試有的時候會遇到下面這個錯誤:
E00037.671: Exception escaped from start_client Traceback (most recent call last): File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/log.py", line 110, in g return f(*args, **kwargs) File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/pydevd_hooks.py", line 74, in start_client sock, start_session = daemon.start_client((host, port)) File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/daemon.py", line 214, in start_client with self.started(): File "/media/hdd/yike/anaconda3/envs/pytorch-netvlad/lib/python3.6/contextlib.py", line 81, in __enter__ return next(self.gen) File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/daemon.py", line 110, in started self.start() File "/home/gzz/.vscode-server/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/daemon.py", line 145, in start raise RuntimeError('already started') RuntimeError: already started Traceback (most recent call last): Error in atexit._run_exitfuncs: Error in atexit._run_exitfuncs: Traceback (most recent call last):
原因:VSCode對多線程支持得不夠好,解決方法:在使用多線程得腳本中添加如下代碼:
import multiprocessing multiprocessing.set_start_method('spawn',True)
但有的時候可能還會出現如下得錯誤:
OMP: Error #13: Assertion failure at z_Linux_util.cpp(2361). OMP: Hint Please submit a bug report with this message, compile and run commands used, and machine configuration info including native compiler and operating system versions. Faster response will be obtained by including all program sources. For information on submitting this issue, please see http://www.intel.com/software/products/support/. /media/hdd/yike/anaconda3/envs/pytorch-netvlad/lib/python3.6/multiprocessing/semaphore_tracker.py:143: UserWarning: semaphore_tracker: There appear to be 26 leaked semaphores to clean up at shutdown len(cache))
發現這個問題是由於intel-openmp版本太新造成的bug,通過重新安裝intel-openmp=2019.4即可解決。
conda install -y intel-openmp=2019.4