Python在导入火炬时阻止/停止

时间:2020-10-09 10:46:32

标签: python pytorch

我已经基于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
  • GPU: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,它立即返回并且没有任何奇怪之处。还创建了一个名为bar.py的文件,其内容如下:

import platform
print(platform.system())

并使用python3运行它,效果很好,打印为“ Linux”。我不认为这是原因,也许只是一个巧合?

我也尝试了更多次,其他情况看起来像是在python提示符下运行import torch,无法终止进程并且什么也没打印。一旦打印出Soft lock up on CPU#4,我认为是由上次断开连接的会话中的测试过程引起的。

0 个答案:

没有答案