我已经基于pytorch
开发了一个深度学习的对象检测程序,并且效果很好。今天,我将该程序部署在PC上,一切正常,但是无法启动该程序。调试并发现,程序在导入pytorch
时阻塞或暂停。
只需启动python提示符,输入import torch
,提示符将被阻止。 top
命令显示CPU /内存使用率非常低。按ctrl-c
无法停止提示。虽然其他库导入很好。我已经尝试过pycrypto
和我自己写的那本书,但是pytorch
除外,都可以。
我已经部署了100多次,但从未遇到这种情况。我还尝试将pytorch从1.6重新安装到1.4,将Torchvision从0.7重新安装到0.5,仍然无法正常工作。没有错误打印,没有抱怨。
环境:
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
,它立即返回并且没有任何奇怪之处。还创建了一个名为bar.py的文件,其内容如下:
import platform
print(platform.system())
并使用python3
运行它,效果很好,打印为“ Linux”。我不认为这是原因,也许只是一个巧合?
我也尝试了更多次,其他情况看起来像是在python提示符下运行import torch
,无法终止进程并且什么也没打印。一旦打印出Soft lock up on CPU#4
,我认为是由上次断开连接的会话中的测试过程引起的。