1. pin_memory参数解析

由于从 CPU 数据转移至 GPU 时,位于pinned(或叫做page-locked) memory上的 Tensor 会更快,因此DataLoader里设置了这一选项, 如果pin_memory=True, 则在提供数据时, 调用Tensor的 .pinmemory() 方法提高数据转移速度. 但是, 该方法只对普通 Tensor 和包含 Tensor 的映射与容器等数据结构成立, 如果是自定义的数据 batch, 则需要特殊实现其 .pinmemory() 方法.

主机中的内存,有两种存在方式,一是锁页(page-locked),二是不锁页,锁页内存存放的内容在任何情况下都不会与主机的虚拟内存进行交换(注:虚拟内存就是硬盘),而不锁页内存在主机内存不足时,数据会存放在虚拟内存中。显卡中的显存全部是锁页内存,当计算机的内存充足的时候,可以设置 pin_memory=True。当系统卡住,或者交换内存使用过多的时候,设置 pin_memory=False。因为 pin_memory 与电脑硬件性能有关,pytorch 开发者不能确保每一个炼丹玩家都有高端设备,因此 pin_memory 默认为False

2. num_workers参数解析

num_workers 是服务于多进程(multiprocessing)数据加载的, 用于设置有多少个子进程负责数据加载. num_workers并不是越大越好, 因为过多的子进程会占据 CPU 计算资源, 使得程序中其他在CPU上的计算部分变慢, 导致整体运行时间增加.

一般来说是通过逐步增加尝试来进行设置, 比如当GPU计算利用率已经很饱和时, 说明数据读取足够满足计算需求, 则不必再增加worker数量.

3. collate_fn参数解析

默认情况下DataLoader将调用预置的 default_collate_fn, 将 Dataset 的返回的多个数据样本整理(collate)成为一个 batch. 在 collate 时, 会添加一个维度, 即批样本维度在数据的第一维, 可以看做这个操作即是 torch.stack 运算.

pytorch dataloader参数解析相关推荐

  1. Pytorch之Dataloader参数collate_fn研究

    前言 之前看了不到pytorch代码,对Dataloader的大部分参数都比较了解,今天看代码时,发现了一个参数collate_fn ,之前论文代码没怎么见过,也就自动忽略了,今天既然遇到了,就突然来 ...

  2. Vision Transformer(ViT)PyTorch代码全解析(附图解)

    Vision Transformer(ViT)PyTorch代码全解析 最近CV领域的Vision Transformer将在NLP领域的Transormer结果借鉴过来,屠杀了各大CV榜单.本文将根 ...

  3. Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)

    1. 参数解析说明 import "flag" flag 包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个 set 集合.每条都有各自的状态参数. 使用 f ...

  4. google gflags的参数解析,便捷实用

    命令行参数解析,一直是我们后段开发人员需要经常使用的一个功能,用来从终端解析接口的输入 ,并做出对应的处理.这里为使用C++/python的开发人员推荐一个便捷的命令行解析接口集 gflags. 我们 ...

  5. 【Qt】通过QtCreator源码学习Qt(六):命令行参数解析实现

    参考下大神的命令行参数解析是如何是实现的 //使用const char []代替宏定义字符串,我以前都是用const QString,想想好傻 const char SETTINGS_OPTION[] ...

  6. url参数解析 url解析 ?解析成对象

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 代码: // url参数解析 function getUrlkey(url) {var params ...

  7. JS 把url的参数解析成对象

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 实现思路:请看log和打印结果 // url参数解析 function getUrlkey(url) ...

  8. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  9. 介绍Shell脚本的参数解析工具

    Argbash是一个代码生成器,它为你的脚本生成一个量身定制的解析库.与其他bash模块的通用代码不同,它生成你的脚本所需的最少代码. Argbash是一个代码生成器,它为你的脚本生成一个量身定制的解 ...

  10. 3gpp文件头文件解析_居于LLVM 的命令行参数解析

    在写命令行程序的时候经常需要解析各种命令行参数.打印help信息等,觉得非常的麻烦.今天介绍一种超级棒的命令参数解析的方法:居于LLVM 的命令行参数解析,有了它妈妈再也不用担心我不会解析命令行参数^ ...

最新文章

  1. python openpyxl写入多行_Python openpyxl读写操作
  2. 分析与设计(AD)简介(2)
  3. Python的设计目标
  4. 最后一个 IPV4 地址分配完毕,正式向IPV6过渡!
  5. 两个byte[]拼接
  6. python去除视频马赛克_马赛克是否无法逆转?Python简单消除,看片无忧!
  7. LeetCode每日一题 141. 环形链表
  8. OnlineJudge 离线题库采集
  9. 又来了!深度学习PyTorch与TensorFlow到底哪家强?
  10. python数据结构与算法之问题求解
  11. 探求数据仓库关键环节ETL的本质
  12. android系统性能优化(63)---Android APP 卡顿问题分析及解决方案
  13. oracle 中的参数 optimizer_mod的各个参数的意义
  14. LKY-智慧景区可视对讲广播融合平台系统解决方案
  15. cnpm下载依赖包速度快的原理探究
  16. 微软商店打开失败 - 错误代码 - 0x80131500
  17. 松下服务器显示18号报警,松下伺服报警代码预览表
  18. C语言实现顺序栈以及栈的特点
  19. 新辰:台北90后创业炸鸡配啤酒 来自星星的你 不成功也难
  20. 搜狗输入法5.0正式版发布 首创云计算输入

热门文章

  1. 如何从tomcat官网下载自己需要的版本
  2. operating system not found的问题的解决办法 ---设置活动分区
  3. 虚幻4英雄联盟模型分享——荆棘之刺婕拉
  4. linux进程终止命令,Linux kill命令:终止进程
  5. 高端玩家的运营与维护
  6. Linux编译移植Qt5的环境_OMAPL138平台
  7. CSDN-怎么设置被粉丝关注之后的自动回复
  8. win10里面的linux可以分屏吗,Win10上下分屏怎么弄 教你让Win10上下分屏的方法
  9. 怎么做简单版ps碎片飞溅效果
  10. Network: unavailable