在用tensorflow训练神经网络时,发现训练迭代的速度时而快时而慢,监督的GPU使用率也是周期性变化,通过了解,发现原因是:

GPU在等待CPU读取,预处理,并传输数据过来,因此要提高GPU的使用率,降低GPU的等待时间,需要加快CPU的处理速度.

在PYTORCH中的解决方案是用torch.utils.data.DataLoader,用num_workers设置线程数:

torch.utils.data.DataLoader(image_datasets[x],
                                   batch_size=batch_size,
                                    shuffle=True,
                                    num_workers=8,
                                    pin_memory=True)

在tensorflow中的解决方案是用tf.data.Dataset.map(num_parallel_calls=8)中的num_parallel_calls设置读取数据的线程数:

用 tf.data读取数据,  tf.data.Dataset中有一个map函数,它有个num_parallel_calls参数,可以控制CPU的线程,加快数据的读取速度,一般将线程设置为8效果最好.

本文主要参考以下两篇文章,建议大家去看更多细节:

https://blog.csdn.net/qq_32998593/article/details/92849585

https://zhuanlan.zhihu.com/p/53345706

深度学习PyTorch,TensorFlow中GPU利用率较低,使用率周期性变化的问题相关推荐

  1. 深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析

    在深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用top来查看CPU ...

  2. 深度学习PyTorch、TensorFlow中GPU利用率与内存占用率很低的问题

    上周,在一个使用Pytorch搭建的目标训练项目中,训练时,通过使用命令行执行NVIDIA-SMI(仅支持英伟达显卡)命令发现GPU的利用率基本一直停留在0%,并且显存占用率也较低.CSDN上有一篇分 ...

  3. 深度学习——在TensorFlow中查看和设定张量的形态

    参考书籍:<深度学习--基于Python语言和TensorFlow平台> import tensorflow as tfx = tf.placeholder(dtype=tf.float3 ...

  4. 李沐老师的《动手学深度学习PyTorch》中的d2lzh_python包的安装

    关于RNN章节 以及模型章节等会使用到d2l的python包 cmd下载地址:pip install d2l -i https://pypi.doubanio.com/simple/

  5. C++调用Python文件,TensorFlow和PyTorch构建的深度学习模型,无法使用GPU的情况分析。

    C++调用Python深度学习模型,包含TensorFlow和PyTorch等构造的模型,然后使用GPU出现问题.包含C++调用Python函数,C++加载模型到GPU,GPU内存占用过大,计算完毕内 ...

  6. 快速了解深度学习框架--tensorflow(更新中)

    深度学习框架(工具)简单来说即库,需要import,比如tensorflow,Caffe- 深度学习框架提供了一系列的深度学习的组件(对于通用的算法,里面会有实现),当需要使用新的算法的时候就需要用户 ...

  7. 深度学习调用TensorFlow、PyTorch等框架

    深度学习调用TensorFlow.PyTorch等框架 一.开发目标目标 提供统一接口的库,它可以从C++和Python中的多个框架中运行深度学习模型.欧米诺使研究人员能够在自己选择的框架内轻松建立模 ...

  8. 2_初学者快速掌握主流深度学习框架Tensorflow、Keras、Pytorch学习代码(20181211)

    初学者快速掌握主流深度学习框架Tensorflow.Keras.Pytorch学习代码 一.TensorFlow 1.资源地址: 2.资源介绍: 3.配置环境: 4.资源目录: 二.Keras 1.资 ...

  9. 【翻译】为深度学习购买哪种GPU: 我在深度学习中使用GPU的经验和建议

    文章目录 概述 GPU是如何工作的? 对深度学习处理速度最重要的GPU规格 张量核心 没有张量核心的矩阵乘法 使用张量核心的矩阵乘法 带有张量核心和异步拷贝的矩阵乘法(RTX 30/RTX 40)和T ...

最新文章

  1. 解决git本地提交不到远程库
  2. 用for实现Go的while和do...while
  3. 算法岗面经整理!查漏补缺
  4. Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)
  5. 转 Debugging AutoCAD 2017 using Visual Studio 2015
  6. 在开课吧学python的经历-“你毕业2年,为什么写3年的工作经验?”“加班啊”...
  7. 计算机工程类高级职称,2019年工程类中高级职称都有哪些专业?
  8. 5去掉button按钮的点击样式_CSS实现复古按钮
  9. Oracle 的一些语句
  10. tomcat没有错,但是还是一闪而过(端口被占用)
  11. php 调用日历控制,基于ThinkPHP实现的日历功能实例详解
  12. 计算机学院微信公众平台,智慧校园管理,一个微信公众号搞定
  13. 华为云内网DNS地址大全(不同区域DNS地址)
  14. GBASE应用 | “天擎”出鞘 GBase 8a助力气象行业进入大数据时代
  15. ts定义数组类型_ts中类型
  16. 网络上博弈——博弈匠心——真正的匠人精神
  17. 时间很快,请多做有意义的事情
  18. Zigbee网关 CC2530驱动1602显示屏
  19. 梳理:WPS JS宏之WPS表格单元格读写值
  20. 物联网创业公司正在消亡!

热门文章

  1. 快捷键关机电脑_电脑还可以这样关机?炫技术的时候到了!
  2. react antd 更改table 表头和表行样式
  3. 蒙特卡罗模拟_Stata博文 | 使用蒙特卡罗模拟计算功率part 1:基础知识
  4. 学习java_java学习册之立FLAG
  5. vim编辑python_Python3基础知识——Vi/Vim编辑器的使用,大神们都在用的
  6. android 指南针传感器,android 传感器使用 Compass指南针的实现功能
  7. servlet过滤器 实例_Java Servlet过滤器示例教程
  8. 2019年web前端全集_2019年最佳30+ Web工具
  9. nginx(三)status状态页面的相关信息及配置,以及nginx的访问控制配置
  10. 分析优秀的.NET 文档设计工具Vsdocman 7.1 软件保护技术