首页 > 其他分享 >高性能PyTorch训练

高性能PyTorch训练

时间:2022-11-27 11:59:50浏览次数:58  
标签:__ 训练 解码 self RAM PyTorch 高性能 image targets

参考:
https://mp.weixin.qq.com/s/foB44Fm-IhX3yaawn_aZgg

数据预处理

几乎每个训练管道都以 Dataset 类开始。它负责提供数据样本。任何必要的数据转换和扩充都可能在此进行。简而言之,Dataset 能报告其规模大小以及在给定索引时,给出数据样本。

如果你要处理类图像的数据(2D、3D 扫描),那么磁盘 I/O 可能会成为瓶颈。为了获取原始像素数据,你的代码需要从磁盘中读取数据并解码图像到内存。每个任务都是迅速的,但是当你需要尽快处理成百上千或者成千上万个任务时,可能就成了一个挑战。像 NVidia 这样的库会提供一个 GPU 加速的 JPEG 解码。如果你在数据处理管道中遇到了 IO 瓶颈,这种方法绝对值得一试。

还有另外一个选择,SSD 磁盘的访问时间约为 0.08–0.16 毫秒。RAM 的访问时间是纳秒级别的。我们可以直接将数据存入内存。

建议 1:如果可能的话,将数据的全部或部分移至 RAM。
如果你的内存中有足够多的 RAM 来加载和保存你的训练数据,这是从管道中排除最慢的数据检索步骤最简单的方法。

class RAMDataset(Dataset):
  def __init__(image_fnames, targets):
    self.targets = targets
    self.images = []
    for fname in tqdm(image_fnames, desc="Loading files in RAM"):
      with open(fname, "rb") as f:
        self.images.append(f.read())

  def __len__(self):
    return len(self.targets)

  def __getitem__(self, index):
    target = self.targets[index]
    image, retval = cv2.imdecode(self.images[index], cv2.IMREAD_COLOR)
    return image, target

可以将每个文件的二进制内容保持不变,并在 RAM 中进行即时解码,或者对未压缩的图像进行讲解码,并保留原始像素。

标签:__,训练,解码,self,RAM,PyTorch,高性能,image,targets
From: https://www.cnblogs.com/hsiangyu-meng/p/16929376.html

相关文章

  • 图神经网络之预训练大模型结合:ERNIESage在链接预测任务应用
    1.ERNIESage运行实例介绍(1.8x版本)本项目原链接:https://aistudio.baidu.com/aistudio/projectdetail/5097085?contributionType=1本项目主要是为了直接提供一个可以运行......
  • 代码随想录训练营第四十六天 | 动态规划
    今天是第四十六天,动态规划周的最后一天 139.单词拆分classSolution{publicbooleanwordBreak(Strings,List<String>wordDict){intn=s.lengt......
  • C# DoubleUtil Double高性能的辅助类
    AreClose(doublevalue1,doublevalue2):比较两个double是否相近。publicstaticboolLessThan(doublevalue1,doublevalue2)publicstaticboolGreaterThan(double......
  • pytorch torchvision.ops.roi_align 示例
    importtorchvisionimporttorchinput_=torch.rand(3,128,24,96)#[b,c,h,w]bbox=[[0,0.1,0.15,0.4,0.6],[0,0.1,0.15,0.4,0.6],[1,0.01,0.15,0.4,0......
  • Pytorch:使用Tensorboard记录训练状态
    我们知道TensorBoard是Tensorflow中的一个强大的可视化工具,它可以让我们非常方便地记录训练loss波动情况。如果我们是其它深度学习框架用户(如Pytorch),而想使用TensorBoard工......
  • 2018ccpc女生赛A题口算训练
    #include<bits/stdc++.h>using namespace std;#define ios() ios::sync_with_stdio(false);cin.tie(0);/*我们对输入的每一个数字分解质因数,分解过程中把下标存入......
  • win10 torchvision训练模型错误
    pytorch-1.8.2+cuda10.2+torchvison-0.9.2(有问题)pytorch/vision链接1、拉vision代码1)代码版本号需要跟pytorch对应上,也可以跟torchvison版本一致2、重新编译生成torc......
  • [NEFU ACM] 2020级暑期训练 解题报告
    [NEFUACM]2020级暑期训练解题报告Author:2020-计6-zslID:FishingRod阅读须知需求指向:NEFU2020级ACM暑期训练参与人员解题报告博客偏向题解代码展示,解题视频偏向思路讲解......
  • [PLAN]暑期复健训练&其他东西
    [PLAN]暑期复健训练&其他东西学期末应付考试和看基础书籍放了一个月的算法训练,乘着暑假空闲抓紧恢复训练。DAY1:打一场CF,写kuangbin专题DAY2:打一场CF,写kuangbin专题DA......
  • 2022.11.21-27 训练小记
    2022/11/21-27训练小记CF1761D.CarryBit赛时感觉很不可做,对着题解想明白的qwq下文起用\(a_i,b_i\)表示其二进制表示下的第\(i\)位(1-indexed)。人类智慧地想到记......