1. 方法一:使用prefetcher

class data_prefetcher():def __init__(self, loader):self.loader = iter(loader)self.stream = torch.cuda.Stream()self.mean = torch.tensor([0.485 * 255, 0.456 * 255, 0.406 * 255]).cuda().view(1,3,1,1)self.std = torch.tensor([0.229 * 255, 0.224 * 255, 0.225 * 255]).cuda().view(1,3,1,1)# With Amp, it isn't necessary to manually convert data to half.# if args.fp16:#     self.mean = self.mean.half()#     self.std = self.std.half()self.preload()def preload(self):try:self.next_input, self.next_target = next(self.loader)except StopIteration:self.next_input = Noneself.next_target = Nonereturnwith torch.cuda.stream(self.stream):self.next_input = self.next_input.cuda(non_blocking=True)self.next_target = self.next_target.cuda(non_blocking=True)# With Amp, it isn't necessary to manually convert data to half.# if args.fp16:#     self.next_input = self.next_input.half()# else:self.next_input = self.next_input.float()self.next_input = self.next_input.sub_(self.mean).div_(self.std)def next(self):torch.cuda.current_stream().wait_stream(self.stream)input = self.next_inputtarget = self.next_targetself.preload()return input, target

使用方式:

prefetcher = data_prefetcher(train_loader)
data, label = prefetcher.next()
iteration = 0
while data is not None:iteration += 1# 训练代码data, label = prefetcher.next()

参考:

  1. zhihu 给pytorch 读取数据加速;
  2. Github NVIDIA apex

Pytorch数据读取加速方法相关推荐

  1. PyTorch框架学习八——PyTorch数据读取机制(简述)

    PyTorch框架学习八--PyTorch数据读取机制(简述) 一.数据 二.DataLoader与Dataset 1.torch.utils.data.DataLoader 2.torch.util ...

  2. 使用 PyTorch 数据读取,JAX 框架来训练一个简单的神经网络

    使用 PyTorch 数据读取,JAX 框架来训练一个简单的神经网络 本文例程部分主要参考官方文档. JAX简介 JAX 的前身是 Autograd ,也就是说 JAX 是 Autograd 升级版本 ...

  3. PyTorch系列 (二): pytorch数据读取自制数据集并

    PyTorch系列 (二): pytorch数据读取 PyTorch 1: How to use data in pytorch Posted by WangW on February 1, 2019 ...

  4. Pytorch数据读取(Dataset, DataLoader, DataLoaderIter)

    Pytorch的数据读取主要包含三个类: Dataset DataLoader DataLoaderIter 这三者是一个依次封装的关系: 1.被装进2., 2.被装进3. Dataset类 Pyto ...

  5. pytorch数据读取之Dataset与DataLoader

    1. 先前处理数据集的代码经常比较混乱并且难以维护 2. 数据集处理代码应该和训练代码解耦合,从而达到模块化和更好的可读性 因此,pytorch提出了两个数据处理类:DataLoader与Datase ...

  6. 系统学习Pytorch笔记三:Pytorch数据读取机制(DataLoader)与图像预处理模块(transforms)

    Pytorch官方英文文档:https://pytorch.org/docs/stable/torch.html? Pytorch中文文档:https://pytorch-cn.readthedocs ...

  7. pytorch采用GPU加速方法

    在进行深度学习训练模型时,对于计算量小一些的模型,是可以在CPU上进行的.但是当计算量比较大时,我们希望利用GPU并行计算的能力去加快训练的速度. 查看GPU版本号 import torchprint ...

  8. 图像数据读取及数据扩增方法

    Datawhale干货 作者:王程伟,Datawhale成员 本文为干货知识+竞赛实践系列分享,旨在理论与实践结合,从学习到项目实践.(零基础入门系列:数据挖掘/cv/nlp/金融风控/推荐系统等,持 ...

  9. 深度之眼Pytorch打卡(九):Pytorch数据预处理——预处理过程与数据标准化(transforms过程、Normalize原理、常用数据集均值标准差与数据集均值标准差计算)

    前言   前段时间因为一些事情没有时间或者心情学习,现在两个多月过去了,事情结束了,心态也调整好了,所以又来接着学习Pytorch.这篇笔记主要是关于数据预处理过程.数据集标准化与数据集均值标准差计算 ...

最新文章

  1. 1020 Tree Traversals
  2. Tensorflow学习资源
  3. python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题
  4. 一文读懂人工智能产业最新发展趋势
  5. [转载]jquery 消息插件--仿QQ消息弹出提醒
  6. Python基础教程---读书笔记四
  7. listagg 函数--oracle 11g release 2
  8. linux里面启用无线网卡,linux启用无线网卡上网
  9. 三个内置模块shutil logging hashlib config
  10. 今日头条信息流 - 基础账户实操
  11. 带你揭秘网络工程师群体!
  12. H.264之几种开源解码器的对比评测
  13. 爱思唯尔(ELSEVIER)期刊LaTeX通用模板下载及使用技巧
  14. mysql 启动 spawn错误_supervisor ERROR (spawn error):错误解决
  15. AD7606 SPI模式 网上问题汇总
  16. Linux内核4.14版本——DMA Engine框架分析(2)_功能介绍及解接口分析(slave client driver)
  17. poi操作word文档总结
  18. 亚马逊数据技能,选择新品的8大核心原则
  19. Javaweb-ajax的使用
  20. 蓝桥杯嵌入式竞赛-数码管学习笔记(个人备份,以便日后查找)

热门文章

  1. J2EE开发架构大总结
  2. 计算机专业应聘人事专员,hr人事专员面试经验 - 共203条真实hr人事专员面试经验分享 - 职业圈...
  3. 每日总结2022.12.27
  4. Simple-SR(AAAI-2022):Best-Buddy GANs for Highly Detailed Image Super-Resolution论文浅析
  5. 千兆网络中——使用五类线、超五类线和六类线的区别
  6. 情人节程序员用HTML网页表白【浪漫的烟花3D相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  7. 佳能相机操作 EDSDK 教程 C# 版本
  8. 在Word中用快捷键转换英文字母大小写
  9. 电脑突然乱码,是黑客入侵?一招教你完美解决
  10. ios c语言调用oc方法,ios开发之OC基础-类和对象(示例代码)