使用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