背景

在跑代码的时候,运行cmd,输入nvidia-smi,发现这样一个问题,显存的占比高特别低但是GPU利用率特别低。
在这里插入图片描述

解决方法

这个跟自己写的代码有关系,我的主要问题在于,读取磁盘中数据的时候,是依靠CPU在读取数据(此时磁盘读写会非常高,打开任务管理器就知道),同时,tensorflow在运行模型训练的时候,会从内存中读取数据,GPU训练会比较快,而CPU一直在从磁盘中读数据到内存中,而跟不上GPU从内存中读取数据并训练数据的速度,就像超市买东西最后要付款一样,收银员的速度快的令人发指,但是来付款的顾客却一次来几个,又停很久才到下一波。此时可以用两种发放来处理,一个是将磁盘中的数据转成TFRecords类型数据,让tensorflow直接读取数据,而不是让CPU读取数据后再给tensorflow读取,就像顾客全部都被强制赶出来,不准在超市里面停留,只好全部到收银处付费;另外一个方法就是增加线程数(num_threads),在tf.train.shuffle_batch和tf.train.batch中,有一个num_threads参数,默认为1,可以稍微调高点,就如同把顾客多赶一些人出来,而不是只来几个。
在这里插入图片描述
参考:
https://blog.csdn.net/qq_32998593/article/details/92849585
https://zhuanlan.zhihu.com/p/53345706

GitHub 加速计划 / te / tensorflow
33
4
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:23 天前 )
4f64a3d5 Instead, check for this case in `ResolveUsers` and `ResolveOperand`, by querying whether the `fused_expression_root` is part of the `HloFusionAdaptor`. This prevents us from stepping into nested fusions. PiperOrigin-RevId: 724311958 3 个月前
aa7e952e Fix a bug in handling negative strides, and add a test case that exposes it. We can have negative strides that are not just -1, e.g. with a combining reshape. PiperOrigin-RevId: 724293790 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐