torch中dataloader加速
注意: 经过实际测试,在ImageNet数据集上并没有达到所说的提升效果,反而会导致代码逻辑混乱,徒增代码量!
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)
# origin
training_data_loader = DataLoader(dataset=train_dataset,num_workers=opts.threads,batch_size=opts.batchSize,pin_memory=True,shuffle=True,
)
for iteration, batch in enumerate(training_data_loader, 1):# 训练代码# be modifiedinput, label = prefetcher.next()
iteration = 0
while input is not None:iteration += 1# 训练代码input, label = prefetcher.next()
torch中dataloader加速相关推荐
- torch中Dataset的构造与解读
torch中Dataset的构造与解读 Dataset的构造 要自定义自己的数据集,首先需要继承Dataset(torch.utils.data.Dataset)类. 继承Dataset类之后,必须重 ...
- torch的DataLoader 浅析
torch的DataLoader主要是用来装载数据,就是给定已知的数据集,把数据集装载进DataLoaer,然后送入深度学习网络进行训练.先看一下它的声明吧.(官方声明,pytorch 1.10.0文 ...
- Pytorch中Dataloader踩坑:RuntimeError: DataLoader worker (pid(s) 6700, 10620) exited unexpectedly
Pytorch中Dataloader踩坑 环境: 问题背景: 观察报错信息进行分析 根据分析进行修改尝试 总结 环境: 系统:windows10 Pytorch版本:1.5.1+cu101 问题背景: ...
- pytorch中DataLoader的num_workers参数详解与设置大小建议
Q:在给Dataloader设置worker数量(num_worker)时,到底设置多少合适?这个worker到底怎么工作的? train_loader = torch.utils.data.Data ...
- pytorch中Dataloader()中的num_workers设置问题
pytorch中Dataloader()中的num_workers设置问题: 如果num_workers的值大于0,要在运行的部分放进__main__()函数里,才不会有错: import numpy ...
- torch中的copy()和clone()
torch中的copy()和clone() 1.torch中的copy()和clone() y = torch.Tensor(2,2):copy(x) --- 1 修改y并不改变原来的x y = x: ...
- torch中的topk()函数
torch中的topk()函数 In [2]: import torchIn [3]: a=torch.randn((4,6))In [4]: a Out
- einops包中的rearrange,reduce, repeat及einops.layers.torch中的Rearrange,Reduce。对高维数据的处理方式
from einops import rearrange, reduce, repeat from einops.layers.torch import Rearrange, Reduce 一.rea ...
- (原)torch中微调某层参数
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6221664.html 参考网址: https://github.com/torch/nn/issues ...
- ACM比赛中如何加速c++的输入输出
ACM比赛中如何加速c++的输入输出?如何使cin速度与scanf速度相当?什么是最快的输入输出方法?
最新文章
- C#发现之旅第一讲 C#-XML开发
- 软件设计模式-7种设计原则总结
- SQL优化常用方法49
- UA MATH566 统计理论 用点估计构造置信区间
- EMMC型号格式查询
- ajax post 提交无法进入controller 请求200
- 实现动态验证码的思路
- Linux 变量和结构体
- 2017/4/12 afternoon
- 【Calcite】Calcite入门
- 基于JAVA+SpringMVC+Mybatis+MYSQL的公司管理系统
- Spring包的依赖关系以及提供下载
- “数”有专攻、智“汇”武汉,周末技术沙龙Call你来!
- fastexcel读取excel追加写入sheet页_Python写入和读取excel
- linux内核定时器 详解,Linux系统内核定时器机制详解(下)
- InnoDB脏页,重做日志文件
- grep有时抓不到文本怎么办?
- 鸿蒙系统源码获取_Hi3861_HI3516DV编译环境搭建记录
- Matlab|Simulink打开mdl/slx等文件报错:lnvalid block diagram name supplied. Valid block diagram names ...
- 人人商城小程序消息服务器配置,人人商城小程序订阅消息设置方法绝对好使