【tensorflow】 GPU 显存分配设置

本文介绍如何在使用TensorFlow进行训练时,通过配置GPU选项来避免占用过多显存,实现资源的有效利用。文章详细解释了如何限制单个进程对GPU显存的使用,并通过动态分配的方式确保其他用户也能同时进行实验。

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

	import os
    import tensorflow as tf
    
    config = tf.ConfigProto()
    
    config.gpu_options.per_process_gpu_memory_fraction = 0.5 # 控制占用显卡最高显存为50%, 这个提供多人使用
    
    config.gpu_options.allow_growth = True # 设置动态分配GPU
    
    os.environ["CUDA_VISIBLE_DEVICES"] = '0' # 使用编号为0 的显卡
    

tensorflwo 在训练的时候是默认占用你所有显卡的显存的,这个时候就要指定用于训练的显卡并且还有限制显存的上限
否则你在实验室使用tensorflow训练的时候将显存占满,这个时候实验室的同门拳头已经准备朝向你了;可能你会觉得不会知道你是谁,问题还不大;

要知道是谁在跑程序的方法又几个,首先ps查看当前终端的历史输入记录,一般跑实验会切换到自己的文件目录下,这个时候就能知道是谁在跑程序;其次就是使用==kill ==杀掉你的进程(哈哈);让你白跑;所以使用服务器的GPU就要注意使用指定的卡还有就是不要占满显存;

### TensorFlow GPU 使用示例 为了展示如何在 TensorFlow 中配置和使用 GPU 进行计算,下面提供了一个完整的 Python 脚本实例。此脚本不仅展示了如何检测可用的 GPU 设备,还说明了怎样通过限制显存分配以及选择特定编号的 GPU 来优化性能。 #### 导入必要的库并打印 Tensorflow 版本 ```python import tensorflow as tf print("TensorFlow version:", tf.__version__) ``` #### 配置 GPU 设置 当有多个 GPU 可用时,可以通过如下代码指定仅使用第二块 GPU (索引为 1),并且设置初始显存增长模式以防止一次性占用过多资源[^2]: ```python gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: # 禁用除第一个之外的所有其他 GPUs tf.config.set_visible_devices(gpus[1], 'GPU') # 动态申请显存空间 for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) logical_gpus = tf.config.experimental.list_logical_devices('GPU') print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPU(s)") except RuntimeError as e: print(e) ``` #### 创建简单的模型并在选定的 GPU 上执行操作 定义一个简单的人工神经网络结构,并将其放置于之前所选的 GPU 上运行: ```python with tf.device('/device:GPU:0'): model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)), tf.keras.layers.Dropout(0.5), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer=tf.keras.optimizers.Adam(), loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy']) ``` #### 实时监控 GPU 利用率 可以利用 `nvidia-smi` 命令每隔一段时间查看一次 GPU 的工作状态,这对于调试非常有用[^3]: 打开一个新的命令行窗口输入以下指令来每两秒钟更新一次 GPU 的信息: ```bash nvidia-smi -l 2 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jucway

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值