【Ubuntu-Tensorflow】程序结束掉GPU显存没有释放的问题

本文介绍了一种在Ubuntu系统中遇到Tensorflow程序运行过程中意外终止,导致GPU显存未正常释放的情况,并提供了解决方案。通过使用特定命令手动结束占用显存的进程,可以有效地解决GPU显存占用问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔者在ubuntu上跑Tensorflow的程序的时候,中途使用了Win+C键结束了程序的进行,但是GPU的显存却显示没有释放,一直处于被占用状态。
使用命令
watch -n 1 nvidia-smi
显示如下
这里写图片描述
两个GPU程序都在执行中,实际上GPU:0已经被笔者停止了,但是GPU没有释放,进程还在继续,所以只有采用暴力手段了,将进程手动关闭掉,进程编号如图中红线部分,由于笔者在两个GPU跑的程序一样,很难从程序名称上找到自己,却可以从GPU:num上找到自己的PID。
关闭命令如下:
sudo kill -9 PID

好,完美解决GPU显存释放问题

### 配置 TensorFlow 使用 GPU 的步骤 在 Ubuntu 22 上配置 TensorFlow 以使用 GPU 是一个多阶段的过程,涉及安装必要的依赖项、创建虚拟环境并验证安装是否成功。以下是详细的说明: #### 创建 Conda 虚拟环境 为了确保兼容性和隔离性,建议使用 Anaconda 或 Miniconda 来管理 Python 环境。 ```bash # 更新 conda 到最新版本 conda update conda # 创建一个新的虚拟环境 (假设 Python 版本为 3.8) conda create -n tf-gpu python=3.8 # 激活该虚拟环境 conda activate tf-gpu ``` #### 安装 CUDA 和 cuDNN 工具包 TensorFlow 对特定版本的 CUDA 和 cuDNN 提供支持。对于 TensorFlow 2.x,通常推荐使用的组合如下表所示[^4]: | TensorFlow Version | CUDA Toolkit | cuDNN | |-------------------|--------------|-------| | 2.7 | 11.2 | 8.1 | 可以通过以下命令来安装这些工具包: ```bash # 安装 CUDA 工具包 conda install cudatoolkit=11.2 -c nvidia # 安装 cuDNN 库 conda install cudnn=8.1 -c conda-forge ``` #### 安装 TensorFlow-GPU 通过 `pip` 命令安装指定版本的 TensorFlow-GPU。这里我们选择 TensorFlow 2.7,因为它是一个稳定且广泛测试过的版本。 ```bash # 设置清华镜像源加速下载速度 pip install tensorflow-gpu==2.7 -i https://pypi.tuna.tsinghua.edu.cn/simple ``` #### 验证安装 完成上述操作后,需验证 TensorFlow 是否能够检测到 GPU 并正常运行。 ```python import tensorflow as tf # 检查 TensorFlow 是否由 CUDA 支持 print(tf.test.is_built_with_cuda()) # 如果返回 True,则表示已启用 CUDA 支持 # 检查是否有可用的 GPU 设备 print(tf.config.list_physical_devices('GPU')) # 返回非空列表表明有 GPU 可用[^1] ``` 如果以上两步均返回预期的结果 (`True` 和非空设备列表),那么 TensorFlow 已经成功配置为使用 GPU--- ### 注意事项 - **驱动程序**:确保显卡驱动已经更新至最新的 NVIDIA 显卡驱动版本(至少 R450)。可以访问 [NVIDIA 官方网站](https://www.nvidia.com/) 下载适合您硬件型号的驱动。 - **内存分配优化**:有时默认情况下可能会遇到 OOM 错误(Out of Memory),可通过调整 TensorFlow 的内存增长策略解决此问题。 ```python gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) except RuntimeError as e: print(e) ``` ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十四桥下一句

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值