模型训练时GPU利用率太低的原因及解决
作者:. 发布时间:2021-02-05 22:22:07
标签:模型训练,GPU,利用率低
模型训练时GPU利用率太低的原因
最近在训练SSD模型时发现GPU的利用率只有8%,而CPU的利用率却非常高。
后来了解到,一般使用CPU进行数据的读取和预处理,而使用GPU进行模型的正向传播和反向传播。由于CPU数据读取跟不上(读到内存+多线程+二进制文件),而GPU的处理速度太快,导致GPU的利用率不高。
最后总结一下,有的时候模型训练慢并不是因为显卡不行或者模型太大,而是在跑模型过程中有一些其他的操作导致速度很慢,尤其是文件的IO操作,这会导致GPU得不到连续性使用,整体速度特别慢。
问题的解决办法
1,关闭一些日志记录,减少日志IO操作频率。
2,NVIDA提供了DALI库,可以将数据处理转移到GPU上。
模型训练GPU利用率低,占用低怎么破
GPU 的显存占用和算力利用直接影响模型的训练速度
GPU 显存占用低问题
1、提高batch_size
2、提高模型输入尺寸
3、增加模型深度
推荐:优先提高batch_size, 其他方法会对模型结构产生影响
GPU利用率低问题
1、提高线程数
2、打开pin_memory
# 在pytorch 加载数据时提高线程数,打开pin_memory
torch.utils.data.DataLoader(image_datasets[x],
batch_size=batch_size,
shuffle=True,
num_workers=8,
pin_memory=True)
来源:https://blog.csdn.net/weixin_43213895/article/details/108186447


猜你喜欢
- 本文讲解如何用java实现把数据库的数据写入到txt中 并实现类似下载软件的样子在网页中弹出下载.package datatest;impo
- python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面将具体介绍几种常用情况:(1)主程序
- 首先,自学Python是能够找到相关工作的。Python语言在近几年的上升趋势非常明显,语言生态也越来越健全,在Web开发、大数据开发、人工
- 目录1、封装1.1 私有属性和私有方法2、继承2.1 方法的重写2.2 在子类方法中调用父类方法2.3 多继承2.4 新式类和经典类3、多态
- 1 random.choicepython random模块的choice方法随机选择某个元素foo = ['a',
- 一、案例场景字段login_place,一共267725行记录,随机15条记录如下: 后续数据分析工作需要用到地理维度进行分析,所以需要把
- 上回书说到了对人脸的检测,这回就开始正式进入人脸识别的阶段。关于人脸识别,目前有很多经典的算法,当我大学时代,我的老师给我推荐的第一个算法是
- 本文实例讲述了Python实现MySQL操作的方法。分享给大家供大家参考,具体如下:1. 安装MySQLdb.从网站下载Mysql for
- 这篇文章主要介绍了基于python读取.mat文件并取出信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 我就废话不多说了,大家还是直接看代码吧!talk is cheap from openpyxl import Workbook
- on和where的区别多表查询语法结构:table_reference {[INNER] JOIN | {LEFT|RIGHT} [OUTE
- 决定数据类型的第一步是定义所存数数据的分类: 数值型, 字符串型还是临时型等;除了一些特别的并不是那么直观的外, 这通常是很直观的。接下来是
- IWinter 是一个路由转控制器的 node 库,只解决一个问题:为了让使用者以更优雅的姿势进行路由的编写。支持在 Express 和 K
- 本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下#五子棋‘''矩阵做棋盘 16*16 “+”打
- 在实际编程开发中,我们会使用到各类的加密算法来对数据和信息进行加密。比如密码中比较常见的MD5加密,以及AES加密等等。对于密码认证来说,M
- 聚合函数作用于一组数据,对那组数据返回一个值count :统计结果记录多少条数,max:统计最大值min:统计最小值sum:计算求和avg:
- 本文实例讲述了Python常见数据类型转换操作。分享给大家供大家参考,具体如下:类型转换主要针对几种存储工具:list、tuple、dict
- 之前在《首都机场的点烟器》中分析了一个软件系统所处的状态并且列举了不同的状态所需要的展示给用户的各类信息,我们先简单回顾一下:要设计一个软件
- 工厂模式(Factory Pattern)是什么工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会
- 1、随机生成0-1的浮点数random.randomrandom.random()用于生成一个0到1的随机浮点数: 0 <= n &l