进程被杀死后释放GPU内存

问题描述 投票:0回答:1

我正在尝试使用PyCharm和jupyter shell的tensorflow1.10代码。

当我在运行一些代码后重新启动内核时,遇到这样的错误。

WARNING:root:kernel 7ee39326-4723-4562-a82e-d651dc4710d7 restarted
Traceback (most recent call last):
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/site-packages/ipykernel_launcher.py", line 16, in <module>
    app.launch_new_instance()
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/site-packages/traitlets/config/application.py", line 663, in launch_instance
    app.initialize(argv)
  File "<decorator-gen-124>", line 2, in initialize
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/site-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/site-packages/ipykernel/kernelapp.py", line 547, in initialize
    self.init_sockets()
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/site-packages/ipykernel/kernelapp.py", line 266, in init_sockets
    self.shell_port = self._bind_socket(self.shell_socket, self.shell_port)
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/site-packages/ipykernel/kernelapp.py", line 213, in _bind_socket
    return self._try_bind_socket(s, port)
  File "/home/jho/anaconda3/envs/mask/lib/python3.6/site-packages/ipykernel/kernelapp.py", line 189, in _try_bind_socket
    s.bind("tcp://%s:%i" % (self.ip, port))
  File "zmq/backend/cython/socket.pyx", line 550, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 25, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Address already in use
[W 09:57:18.673 NotebookApp] KernelRestarter: restart failed
[W 09:57:18.674 NotebookApp] Kernel 7ee39326-4723-4562-a82e-d651dc4710d7 died, removing from map.
ERROR:root:kernel 7ee39326-4723-4562-a82e-d651dc4710d7 restarted failed!

我认为这是由ImageZMQ导致的,因此无法重新启动。所以我想运行另一个代码,但是我的GPU内存没有释放。

这是我的nvidia-smi。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64.00    Driver Version: 440.64.00    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2070    On   | 00000000:01:00.0  On |                  N/A |
| 30%   34C    P2    33W / 225W |   7953MiB /  7979MiB |      7%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1169      G   /usr/lib/xorg/Xorg                            18MiB |
|    0      1208      G   /usr/bin/gnome-shell                          50MiB |
|    0      1537      G   /usr/lib/xorg/Xorg                            91MiB |
|    0      1670      G   /usr/bin/gnome-shell                          45MiB |
|    0      1994      G   gnome-control-center                           2MiB |
|    0      2570      G   ...p/pycharm-professional/192/jbr/bin/java    70MiB |
+-----------------------------------------------------------------------------+

Python进程被杀死,但是没有释放全局内存。

是否有释放方法?

tensorflow cuda gpu jupyter nvidia
1个回答
1
投票

在使用keras的情况下,在库中添加“ K.clear_session()”之后,这将清除内存中的所有内容

© www.soinside.com 2019 - 2024. All rights reserved.