训练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:Fromtf.config.list_physical_devices('GPU')
。 Python 3.7.7以上是关于训练TensorFlow模型的时候,GPU使用率总是出现突然的降低,波动很大,我想问问大神们原因是啥的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 gpu 并行训练 tensorflow.keras 模型? TensorFlow 版本 2.5.0