线程中的 Pytorch 异常:ValueError:信号编号 32 超出范围

Wu *_*ili 5 python pytorch

我收到此错误:

Exception in Thread: ValueError: signal number 32 out of range
Run Code Online (Sandbox Code Playgroud)

给我带来问题的具体教程是训练分类器(https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html),具体行是:

dataiter = iter(trainloader) 
Run Code Online (Sandbox Code Playgroud)

完整的错误回溯是:

Exception in thread Thread-5:
Traceback (most recent call last):
File "/home/chenchen/anaconda3/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/home/chenchen/anaconda3/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/chenchen/anaconda3/lib/python3.6/multiprocessing/resource_sharer.py", line 139, in _serve
signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG))
File "/home/chenchen/anaconda3/lib/python3.6/signal.py", line 60, in pthread_sigmask
sigs_set = _signal.pthread_sigmask(how, mask)
ValueError: signal number 32 out of range
Run Code Online (Sandbox Code Playgroud)

我的操作系统是 Ubuntu 18.10,我的 python 环境是 python 3.6 的 Anaconda3。我从最新源安装了 pytorch。我的 cuda 版本是 10.0。

小智 8

我遇到了类似的问题,当我设置时它得到了解决:

num_workers=0
Run Code Online (Sandbox Code Playgroud)


Lat*_*ius 5

看起来这是 Python 中的一个错误(https://bugs.python.org/issue33329)。

对于 Python 3.6,它在 2019 年 7 月左右发布的 3.6.6 中得到修复(请参阅提及它的发行说明)。(您可以通过运行来检查您拥有的版本python3 --version。)

对于 Python 3.5,您至少需要 3.5.7 (...发行说明)。

同时...我个人还没有尝试过这个,但是Ubuntu 18.10似乎有Python 3.6.7可用,所以一个简单的方法sudo apt install python3.6可以解决这个问题吗?