0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

有关IO模式的问题,数据存储与深度学习

8gVR_D1Net08 来源:未知 作者:李倩 2018-05-23 11:19 次阅读

人工智能,尤其是深度学习是一种正在改变人们生活的许多方面的计算技术。深度学习的算法需要大量的数据。数量确实取决于算法和生成的网络模型的目标,但对于一些复杂的模式来说,它可能会运行数亿的输入集合。

人工智能是计算领域的热门话题之一,并且有着充分的理由。深度学习(DL)中的新技术在某些问题上有能力创建比人类精确度更好的神经网络。图像识别是深度学习(DL)模型如何在识别图像中的对象(对象检测和分类)方面实现比人类准确性更好的一个例子。

ImageNet竞赛就是一个例子。自2010年以来,ImageNet大规模视觉识别挑战(ILSVRC)已被用作图像识别改进的衡量标准。在2011年,其错误率约为25%(该工具可以正确识别培训数据集之外的75%的图像)。2012年,深度神经网络(DNN)的错误率降低到16%。在接下来的几年里,其错误率将降至个位数。在2017年,36支参赛团队中有29人的失误率低于5%,这通常要比人类识别做的更好。

深度学习使用各种类型的神经网络,可应用于各种各样的问题。创建深度学习模型通常有两个主要步骤:第一步就是所谓的训练。这是让模型重复读取输入数据集,并调整模型参数以最小化错误(正确输出与计算输出之间的差异)的过程。这一步需要大量的输入,需要极端大量的计算量。

第二步发生在模型训练后,称之为推理。这是训练模型在生产中的部署。生产意味着该模型可用于读取未用于培训的数据。它产生用于某个任务的输出,而不是训练神经网络。这一步也有一个计算组件。它不需要大量计算,它需要实现诸如最小化延迟、最佳可能精度,最大化吞吐量,以及最大化能源效率等目标。

用于执行这两个步骤的计算的软件由框架完成。这些软件工具和数据库可以读取通常用Python编写的脚本,告诉框架需要什么样的操作以及神经网络是什么样的。该代码然后由框架读取,然后执行。框架的例子有Tensorflow、Caffe或PyTorch。

有关IO模式的问题

通过研究深度学习(DL)框架的功能,可以了解IO模式。人们不需要知道具体框架的细节,也不需要了解神经网络背后的数学知识。

深度学习(DL)框架中训练步骤的基本流程非常简单。神经网络需要相当多的输入数据来正确训练网络来执行任务。它可以是图像、视频、音量、数字或几乎任何数据的组合。

人们需要大量的数据。此外,其数据必须非常多样化,并为每个输入提供广泛的信息。例如,确定某人是男性还是女性的简单面部识别需要超过1亿张图像。

输入数据能够以各种方式进行存储,从简单的csv文件中获取真正少量的输入数据,以便了解深度神经网络(DNN)的数据库,以及包含图像的数据库。只要深度神经网络(DNN)可以访问数据并理解输入格式,数据也可以分布在不同的格式和工具中。它也可以是结构化和非结构化数据的组合,只要用户知道数据和格式,并且可以在模型中表达这些数据和格式即可。

存储介质上的数据大小可能会有所不同。在极端情况下,来自MNIST数据集的简单图像是28×28灰度图像(值从0到255)。总共有784个像素,这格式非常小。如今人们拥有4K分辨率的电视机和相机。这将是4,096 x 4,096像素,总共16,777,216个像素。

4K色彩表示通常以8位(256个选择)开始,或者可以达到16位信息。这可能导致非常大的图像。如果将一个4K图像制作为分辨率为4520 x 2540和8位的单个未压缩的tiff文件,则其大小为45.9 MB。而对于16位色的图像来说,其大小为91.8 MB。

如果组织拥有1亿张图片,对于一些面部识别算法来说是合理的,组织拥有这么多文件,这对当今的文件系统来说并不算太坏。在8位图像情况下使用的总空间是4.59 PB。对于使用大型高分辨率图像的单个神经网络(NN)来说,这是相当大的空间。

一般来说,神经网络在训练网络时有两个阶段。第一阶段称为前馈。它接受输入并通过网络进行处理。输出与正确的输出进行比较以产生错误。然后通过网络传播这个错误(反向传播)来调整网络的参数,以便希望减少网络产生的错误。

这个过程继续进行,以便所有图像通过网络进行处理。这被称为epoch(迭代次数,1个epoch等于使用训练集中的全部样本训练一次)。培训一个网络达到所需的性能水平可能需要数百、数千或数万个epoch。深度学习框架(例如Tensorflow或Caffe或PyTorch)负责用户创建的网络模型的整个过程。

整体IO进程

深度学习的IO模式的简要概述是数据一次又一次地被读取。深度学习经常重复读取(重读)。请注意读取一些文字,但与阅读相比,它的工作量是很小的,因为它主要是在神经网络训练期间检查指向。但是,为了改进神经网络训练,可以使用一些影响IO模式的选项。

作为读取或写入数据量的示例,在此假设网络需要1亿张图像,其中每张图像为45.9 MB。此外,假设网络模型需要大约40MB来保存,并且每100个epoch保存一次,并且需要5000个epoch来训练模型。

如前所述,一个epoch需要读取4.59 PB的数据。这需要重复5000次。这总共需要读取22.95EB的数据。如果每个图像是单个文件,它还需要读取500亿个文件。

对于写入IO,模型需要写入50次。这是总共2 GB和50个写入。与读取相比,其工作量是非常小的。

对于这个例子,总共有459个PB执行了100亿个读取IO。随后是40MB的写入IO。整个IO模式总共重复50次。

这是面向识别应用的深度神经网络(DNN)的基本IO模式。为了减少训练时间,可以使用几种技术。以下的主题是从IO角度对这些技术进行快速概述。

训练技巧

神经网络(NN)训练中使用的第一种技术是输入数据的随机混洗。几乎所有的时间都用它来减少所需的历元(参考的时刻点)并防止过拟合(优化模型到数据集,但是模型在现实世界的数据上表现不佳)。

在新的epoch开始之前,数据读取的顺序是随机的。这意味着读取的IO模式是基于每个图像的随机数。在阅读个人图像时是连续的,但在图像之间是随机的。因此,由于随机性,将模式表征为“重读”而非“读取”是困难的。

也有可以从数据库中读取数据的框架。IO模式的读取仍然非常繁重,可能会随机对数据进行混洗。这可能会使IO模式的细节更加复杂化,因为数据库位于内存和框架之间。

有时框架也会使用IO的mmap()函数。这是一个将文件或设备映射到内存的系统调用。当将虚拟内存区域映射到文件时,它被称为“基于文件的映射”。读取某些内存区域将会读取文件。这是默认行为。

无论是否使用mmap(),IO模式仍然是重读的,遵循以上讨论的模式。然而,使用mmap()会使分析复杂化,因为IO直接从文件到内存。

另一种常用的提高训练性能的技术称为批处理。在每个输入图像(包括向前和向后传播)之后更新网络,而不是在输入“批量”图像之后更新网络。网络的反向传播部分对错误进行操作,例如对它们进行平均,以更新网络参数。这通常不会改变IO模式,因为图像仍然需要被读取,但它可能会影响收敛速度。一般来说,它可以减缓收敛速度,但后向传播的发生较少,提高了计算速度。

在使用GPU(图形处理单元)进行训练时,使用批处理还有助于提高性能。批处理不是将文件从CPU移动到GPU,而是允许用户将多个文件复制到GPU。这可以提高从CPU到GPU的吞吐量,并减少数据传输时间。以这个例子为例,批处理大小为32将减少数据传输到3125000个传输的数量。

批处理确实有助于收敛,但不会真正影响IO模式。该模式仍然是随机读取,写入很少。但它可以改变框架创建的输出量。

数据存储与深度学习

人工智能,尤其是深度学习是一种正在改变人们生活的许多方面的计算技术。深度学习的算法需要大量的数据。数量确实取决于算法和生成的网络模型的目标,但对于一些复杂的模式来说,它可能会运行数亿的输入集合。通常,用于训练模型的数据越多,数据越多样化,最终训练的模型就越好。这指向非常大的数据集。

在以往,有人讨论数据将变得越来越冷。这意味着在创建数据后,很少再次使用它。而人们通过检查数据,包括工程和企业数据,并发现了一些非常有趣的趋势:

•这两种工作负载都更加面向写入。读写字节比率已显著下降(从4:1到2:1)

•相对于只读和只写访问模式,读写访问模式增加了30倍。

•文件很少重新打开。超过66%只重开一次,95%少于五次。

•文件很少重新打开。

•研究期间超过90%的活动存储空间未被使用。

•一小部分客户占文件活动的很大一部分。不到1%的客户占文件请求的50%。

而总结数据的总体使用非常容易。

•IO模式非常重视写入。

•数据很少被重复使用,但仍然存在。

比较深入学习算法的IO模式,可以发现它与传统工程师、HPC和企业应用程序的做法几乎完全相反。深度学习非常重读IO导向,数据在设计和训练模型时被重复使用。即使在模型被训练之后,仍然需要用新数据来增加现有的训练数据集,特别是模型输出中的误差。这是为了随着时间的推移对模型进行的改进。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IO
    IO
    +关注

    关注

    0

    文章

    397

    浏览量

    38516
  • 数据存储
    +关注

    关注

    5

    文章

    897

    浏览量

    50588
  • 深度学习
    +关注

    关注

    73

    文章

    5239

    浏览量

    119922

原文标题:数据存储、人工智能和IO模式

文章出处:【微信号:D1Net08,微信公众号:AI人工智能D1net】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    2023年使用树莓派和替代品进行深度学习

    此页面可帮助您在Raspberry Pi或Google Coral或Jetson Nano等替代品上构建深度学习模式有关深度
    的头像 发表于 05-05 09:47 2130次阅读
    2023年使用树莓派和替代品进行<b class='flag-5'>深度</b><b class='flag-5'>学习</b>

    浅谈示波器的存储深度

    信号,只需要500点的记录长度;但如果要解析一个复杂的数字数据流,则需要有上万个点或更多点的存储深度,这是普通存储是做不到的,这时候就需要我们选择长
    发表于 05-07 10:46

    数据存储与文件IO后续资源包 Datalogging_FileIO

    数据存储与文件IO后续资源包 ,供大家参考学习
    发表于 06-04 00:24

    LabVIEW读取示波器数据存储深度问题

    LabVIEW读取示波器发过来的数据,每次只能读去1000个点,但是示波器数据存储深度远远大于1000,请问怎样可以改变LabVIEW读取示波器
    发表于 07-14 08:58

    浅谈示波器的存储深度

    。长存储对测量的影响明白了存储深度与取样速度密切关系后,我们来浅谈下长存储对于我们平常的测量带来什么的影响呢?平常分析一个十分稳定的正弦信号,只需要500点的记录长度;但如果要解析一个
    发表于 08-10 16:02

    深度学习数据挖掘的关系

    深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合
    发表于 07-04 16:07

    深度学习模型是如何创建的?

    嵌入式系统已被证明可以降低成本并增加各个行业的收入,包括制造工厂,供应链管理,医疗保健等等。本文将介绍有关深度学习嵌入式系统的信息。深度学习
    发表于 10-27 06:34

    IO扩展模式IO模式

    IO扩展模式IO模式,我们最开始学习51单片机的时候。***itP0_0 = P0^0;//位定义P0_0 = 1; //直接对端口进行赋值
    发表于 11-30 06:17

    示波器的变长存储深度和分段存储

    和准确。所以LOTO示波器的存储深度是变长的。在这个模式下,LOTO示波器还提供了500帧的PC缓存功能,还提供了余晖功能。这两个功能记录多帧的数据和波形,分别横向排开显示以及垂直叠加
    发表于 06-22 15:44

    什么是深度学习?使用FPGA进行深度学习的好处?

    准确的模型。有了上述机制,现在可以通过让神经网络模型学习各种问题来自动解决问题,创建高精度模型,并对新数据进行推理。然而,由于单个神经网络只能解决简单的问题,人们尝试通过构建深度神经网络 (DNN
    发表于 02-17 16:56

    Infortrend存储 EonStor GSi 深度学习AI存储一体机

    Infortrend EonStor GSi模块化设计与GPU卡搭配EonCloud Gateway的边缘计算应用场景 EonStor GSi搭载了统一存储系统的高级数据功能,深度学习
    发表于 05-20 20:34 881次阅读

    为什么人工智能和深度学习存储很重要

    如今的人工智能和深度学习应用程序中使用了大数据集和快速I/O技术,但数据存储可能会导致性能问题。人们需要了解人工智能和
    发表于 11-20 10:53 2143次阅读

    IO 与 MM模式

    IO扩展模式IO模式,我们最开始学习51单片机的时候。 sbit P0_0 = P0^0; //位定义 P0_0 = 1;
    发表于 11-21 17:51 1次下载
    <b class='flag-5'>IO</b> 与 MM<b class='flag-5'>模式</b>

    读懂深度学习,走进“深度学习+”阶段

    人工智能的概念在1956年就被提出,如今终于走入现实,离不开一种名为“深度学习”的技术。深度学习的运作模式,如同一场传话游戏。给神经网络输入
    的头像 发表于 01-14 23:34 636次阅读
    读懂<b class='flag-5'>深度</b><b class='flag-5'>学习</b>,走进“<b class='flag-5'>深度</b><b class='flag-5'>学习</b>+”阶段

    什么是深度学习算法?深度学习算法的应用

    。 在深度学习中,使用了一些快速的算法,比如卷积神经网络以及深度神经网络,这些算法在大量数据处理和图像识别上面有着非常重要的作用。 深度
    的头像 发表于 08-17 16:03 1489次阅读