Python在导入火炬时阻塞/停止
我开发了一个基于Python在导入火炬时阻塞/停止,python,pytorch,Python,Pytorch,我开发了一个基于pytorch的深度学习对象检测程序,效果非常好。今天我把这个程序部署在一台PC上,一切都很顺利,但程序无法启动。调试并发现,在导入pytorch时,程序会阻塞或停止 只需启动一个python提示符,键入import torch,提示符就会被阻塞top命令显示CPU/内存使用率非常低。按ctrl-c键不能停止提示。而其他库导入则可以。我试过pycrypto和我自己写的那本,都能用,但pytorch不行 我已经部署了100多次,但从未遇到过这种情况。我还尝试重新安装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:GTX1660
- 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)
并使用python3运行,运行良好,打印为“Linux”。我不认为这是原因,也许只是巧合
我也尝试了更多次,其他情况看起来像是在python提示符下运行
import torch
,无法终止进程,并且没有打印任何内容。一旦它在CPU#4上打印了软锁定,我认为这是由上次断开连接的会话中的测试过程引起的。如果您仅使用导入火炬
创建一个文件foo.py
,然后从cmdline运行它,会发生什么?如果它挂起并且您发送垃圾邮件ctrl+c
,它应该退出(或者您可以发送kill-ID
或kill-9id
)。如果它退出作为最后一次运行操作输出的内容?@SzymonMaszke我已经尝试了你的建议并更新了帖子。有什么想法吗?所以它总是挂起,这就是错误?您在编辑中说:“无法终止进程,也无法打印任何内容。”如果多次按ctrl+c键,直到崩溃,这是不可能的。它似乎挂在platform.system()
调用上。运行的任何其他进程可能会干扰PyTorch?你也应该在PyTorch的论坛上问这个问题。您是否也使用了conda
或pip
?另外,您是否使用PyTorch的本地启动安装说明,或者选择了特定的车轮?
import platform
print(platform.system())