我开发了一个基于pytorch
的深度学习对象检测程序,运行的非常好。今天我把这个程序部署到PC上,一切都很顺利,但是程序无法启动。调试一下,发现程序在导入pytorch
时会阻塞或停止。
只需启动一个python提示符,输入import torch
,提示符就会阻塞。top
命令显示CPU/内存使用率非常低。按ctrl-c
无法停止提示符。而其他库导入则可以。我试过pycrypto
和我自己写的,都能工作,但pytorch
不能。
我已经部署了100多次,但从来没有遇到这种情况。我也尝试重新安装pytorch,从1. 6到1. 4,torchvision从0. 7到0. 5,仍然不工作。没有错误打印,没有抱怨显示。
使用环境:
- 操作系统:Centos 7.4
- CUDA:10.0版
- NVIDIA驱动程序:440.82
- 图形处理器:GTX 1660
- Python:3.6
pytorch
版本:1.6和1.4中所示。
任何信息都是受欢迎的,提前感谢。
编辑:
根据Szymon的想法,运行python3 foo.py
,其中只有import torch
,然后按ctrl-c
,提示符打印:
Traceback (most recent call last):
File "foo.py", line 1, in <module>
import torch
File "/usr/local/lib64/python3.6/site-packages/torch/__init__.py", line 48, in <module>
if platform.system() == 'Windows':
File "/usr/lib64/python3.6/platform.py", line 1068, in system
return uname().system
File "/usr/lib64/python3.6/platform.py", line 1034, in uname
processor = _syscmd_uname('-p', '')
File "/usr/lib64/python3.6/platform.py", line 788, in _syscmd_uname
f = os.popen('uname %s 2> %s' % (option, DEV_NULL))
File "/usr/lib64/python3.6/os.py", line 980, in popen
bufsize=buffering)
File "/usr/lib64/python3.6/subprocess.py", line 729, in __init__
restore_signals, start_new_session)
File "/usr/lib64/python3.6/subprocess.py", line 1318, in _execute_child
part = os.read(errpipe_read, 50000)
看起来python在运行uname <option>
时挂起了,所以我在命令行上尝试了uname -a 2> /dev/null
,它立即返回,没有任何异常。还创建了一个名为www.example.com的文件bar.py,内容如下:
import platform
print(platform.system())
用python3
运行它,运行得很好,打印了“Linux”。我不认为这是原因,也许只是一个巧合?
我也尝试了更多的时间,其他情况看起来像运行import torch
在python提示符,无法杀死进程和没有打印。一旦它打印Soft lock up on CPU#4
,我认为这是由测试进程在最后一个断开会话。
1条答案
按热度按时间uxh89sit1#
在我的例子中,在我的主python文件目录中,还有一个名为
signal.py
的文件,当我把它重命名为signal1.py
时,一切都开始工作了。