训练TensorFlow模型的时候,GPU使用率总是出现突然的降低,波动很大,我想问问大神们原因是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了训练TensorFlow模型的时候,GPU使用率总是出现突然的降低,波动很大,我想问问大神们原因是啥相关的知识,希望对你有一定的参考价值。

这个是一个mnist手写体识别的模型,batch_size=500,使用GPU训练,但是GPU使用率会出现突然的波谷,我这个是并行了好几个任务的图(图一),如果单个任务的话,波动更大,如图2。我想请教大神的是,为什么出现这样的波动?是因为GPU的回收机制还是因为各种延迟?

我在用pytorch训练时也出现这样的问题,可能是模型相对较小,数据从CPU传递到GPU需要一定的时间。 参考技术A 你的问题有点不清楚:
“在命令行import tensorflow有个路径:c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor......”?
有点搞不清你怎么看到这个的。在python interpreter
>>>import?tensorflow
...?(省略)
>>>?tensorflow
from 后面的就是安装的地方。追问

您好,我的意思是使用GPU训练模型的时候,用nvidia-smi -l 监控到的性能指标GPU-Util的值波动很大,想知道一下导致这个原因是什么

TensorFlow 2.0 在单 GPU 上训练模型

【中文标题】TensorFlow 2.0 在单 GPU 上训练模型【英文标题】:Tensorflow 2.0 train model on single GPU 【发布时间】:2020-11-27 06:19:03 【问题描述】:

我想在单个 NVIDIA 显卡(RTX 2080 super)上训练一个顺序 tensorflow(版本 2.3.0)模型。我正在使用以下代码 sn-p 来构建和训练模型。但是,每次运行此代码时,我都看不到任何 GPU 利用率。任何建议如何修改我的代码以便我可以在 1 个 GPU 上运行它?

strategy = tf.distribute.OneDeviceStrategy(device="/GPU:0")
with strategy.scope():
    num_classes=len(pd.unique(cats.No))
    model = BuildModel((image_height, image_width, 3), num_classes)
    model.summary()
    model=train_model(model,valid_generator,train_generator,EPOCHS,BATCH_SIZE)

【问题讨论】:

如果你只有 1 个 GPU,为什么要使用 tf.distribute? 好吧,我只是想确保训练是在 GPU 而不是 CPU 上完成的。它不起作用,因为我可以看到我的 GPU 上没有进行任何计算 你有这个问题的消息吗?我也有这个问题 【参考方案1】:

运行以下代码以查看 tensorflow 是否检测到您的 GPU。

import tensorflow as tf
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
print(tf.__version__)
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
tf.test.is_gpu_available()
!python --version

【讨论】:

它确实检测到了 gpu: Num GPUs Available: 1 WARNING:tensorflow:From :6: is_gpu_available (from tensorflow.python.framework.test_util) 已被弃用并且将在未来的版本中删除。更新说明:改用tf.config.list_physical_devices('GPU')。 Python 3.7.7

以上是关于训练TensorFlow模型的时候,GPU使用率总是出现突然的降低,波动很大,我想问问大神们原因是啥的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 gpu 并行训练 tensorflow.keras 模型? TensorFlow 版本 2.5.0

训练模型上的 TensorFlow 错误(在 GPU 上)

Tensorflow:您如何在模型训练期间实时监控 GPU 性能?

Tensorflow设置GPU训练模型

深度学习TensorFlow如何使用多GPU并行模式?

科研分享如何切换GPU以及如何在Tensorflow实验中节约GPU资源