CN111275162A - 用于通过神经网络处理数据的方法和设备 - Google Patents

用于通过神经网络处理数据的方法和设备 Download PDF

Info

Publication number
CN111275162A
CN111275162A CN201911229922.9A CN201911229922A CN111275162A CN 111275162 A CN111275162 A CN 111275162A CN 201911229922 A CN201911229922 A CN 201911229922A CN 111275162 A CN111275162 A CN 111275162A
Authority
CN
China
Prior art keywords
data
sliding window
sliding
along
filtering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911229922.9A
Other languages
English (en)
Other versions
CN111275162B (zh
Inventor
P·德马雅
L·福里奥特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Publication of CN111275162A publication Critical patent/CN111275162A/zh
Application granted granted Critical
Publication of CN111275162B publication Critical patent/CN111275162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • G06F5/085Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register in which the data is recirculated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本公开的各实施例涉及用于通过神经网络处理数据的方法和设备。一种方法,可以被用于通过卷积神经网络处理初始数据集合,该卷积神经网络包括跟随有池化层的卷积层。初始集沿着正交的第一方向和第二方向而被存储在初始存储器中。方法包括由卷积层使用第一滑动窗口,沿着第一方向,执行对初始数据集合的第一过滤。第一窗口的每次滑动产生第一数据集合。方法还包括由池化层使用第二滑动窗口,沿着第二方向,执行对第一数据集合的第二过滤。

Description

用于通过神经网络处理数据的方法和设备
相关申请的交叉引用
本申请要求于2018年12月05日提交的法国专利申请号 1872330的优先权,该申请通过引用并入本文。
技术领域
实施例涉及用于通过神经网络处理数据的方法和设备。
背景技术
大量使用神经网络来解决各种统计问题,尤其是数据分类问 题。
在通常受监督的自动学习阶段之后,也就是说,在已经分类的 基准数据库上,神经网络“学习”并且自身变得有能力来将相同的 分类应用于未知数据。
卷积神经网络(或CNN)是神经网络的类型,其中神经元之 间的连接模式受到动物视觉皮层的启发。卷积神经网络允许有效识 别图像或视频中的物体或人物。
卷积神经网络通常包含相继地处理信息的层的四种类型:
卷积层,该卷积层例如依次地处理图像的块;
非线性层,该非线性层使得可以改善结果的相关性;
池化层,该池化层使得可以将多个神经元组合为单个神经元;
完全连接层(或密集层),该完全连接层将层的所有神经元链接 到之前层的所有神经元。
每个层将数据作为输入,并在由该层处理之后将输出数据(“特 征”)作为输出递送。
卷积层通常对应于之前层的输出和该层的权重之间的标量积 的集合。卷积层通常构成卷积神经网络的第一层。
作为其含义在神经网络领域中为本领域技术人员所公知的术 语,“权重”意指可以被配置为获取良好输出数据的神经元的参数。
卷积层的目的是标记在作为输入接收的图像中特定数据集合 的存在。相应地,卷积过滤被执行。原理是滑动表示要被检测的数 据的窗口,并且是计算该窗口与所扫描的图像的每个部分之间的卷 积积。
过滤窗口通过术语“卷积核”被本领域技术人员公知,并且处 于矩阵的形式,例如3×3权重的核。
针对每个卷积积,获得指示特定数据在图像上的位置的输出数 据。
池化层通常被放置在两个卷积层之间。池化层接收卷积层的输 出数据作为输入,对卷积层应用“池化”操作,其包括在保留其重 要特性的同时减小数据的大小。这使得减少网络中参数和计算的数 目成为可能。因此,网络的效率得以提高。
最常见的形式是利用处于矩阵形式(例如2×2矩阵)的过滤窗 口进行池化的层。
完全连接层构成了卷积或非卷积神经网络的最后的层。它这使 得对神经网络的输入数据进行分类成为可能。
神经网络的通常架构堆叠了几对卷积层和非线性层,并且然后 添加池化层并且重复这种方案,直到获取足够小尺寸的输出数据为 止,并且然后以一个或多个完全连接层结束。
如今,神经网络变得更加复杂,并且需要大量的计算功率。
每秒指令是衡量系统(例如,微处理器)性能的单位。神经网 络的配置越复杂,由系统每秒执行的指令的数目减少的越多。
发明内容
本发明的实施方式和实施例的模式涉及深度学习,特别是深度 神经网络,并且更具体地涉及计算单元(例如,微处理器)的计算 负载的减少,该计算单元通过卷积神经网络处理初始数据集合。
本发明的实施例可以减少例如处理由卷积神经网络接收或创 建的数据的微处理器的计算负载。
根据一个方面,提出了一种用于减少计算单元(例如,微处理 器)的计算负载的方法,该计算单元通过卷积神经网络处理初始数 据集合。初始集合沿着正交的第一方向和第二方向而被存储在初始 存储器中。该网络包括至少一个卷积层,该卷积层跟随有至少一个池化层。处理包括:由至少一个卷积层使用第一滑动窗口,沿着第 一方向,对初始数据集合进行第一过滤,第一窗口的每次滑动产生 第一数据集合,以及由至少一个池化层使用第二滑动窗口,沿着第 二方向,对第一数据集合进行第二过滤。
这两种过滤的组合有助于减少计算单元的计算负载。
“初始存储器”意指例如易失性存储器,例如RAM存储器(意 指“随机存取存储器”)。
这里,第一过滤窗口是执行卷积过滤的窗口。第一过滤窗口是 卷积层的特性。
第二过滤窗口使得可以对由第一过滤窗口获取的输出数据进 行“池化”操作。第二过滤窗口是池化层的特性。根据实施方式的 一种模式,第二滑动窗口具有沿着第一方向计数的维度N,第一过 滤包括:第一滑动窗口沿着第一方向的N-1次滑动,以及N个第一 数据集合在第一临时存储器中的第一存储。
“第一临时存储器”意指例如缓冲存储器(通常由术语“缓冲 器”指代)。
第一过滤窗口的每次滑动使得可以获取第一输出数据集合。每 个第一集合被存储在第一临时存储器的行中,第一临时存储器包括 N行,N表示第二滑动窗口的高度。
根据实施方式的一种模式,初始数据集合根据多个行和多个 列,以矩阵方式被存储,一连串的行沿着第一方向(例如,竖直方 向)延伸,并且一连串的列沿着第二方向(例如,水平方向)延伸, 每个单独的行沿着第二方向延伸,并且每个单独的列沿着第一方向延伸。
根据实施方式的一种模式,第一滑动窗口沿着第一方向逐步幅 滑动,并且在每个步幅处遍历对应的行。步幅可以是任意的。因此, 第一滑动窗口可以逐行滑动或者可以跳过行。
根据实施方式的一种模式,第二过滤包括第二滑动窗口在第一 临时存储器上沿着第二方向的滑动,该第一临时存储器存储N个第 一数据集合,每次滑动产生第二数据集合,第二过滤包括M个第二 数据集合在第二临时存储器中的第二存储。
“第二临时存储器”意指例如缓冲存储器(通常由术语“缓冲 器”指代)。
换句话说,第二滑动窗口在包括N个第一数据集合的第一临时 存储器上的每次滑动产生第二数据集合。
每个第二数据集合表示池化层的输出数据。
根据实施方式的一种模式,第一存储包括由在第一滑动窗口的 每次滑动时产生的第一数据集合来循环填充第一临时存储器。
最旧的第一数据集合被最新的第一数据集合代替。
根据实施方式的一种模式,在第一临时存储器的多个循环填充 之后执行第二过滤。
例如,可以在第一滑动窗口的两次连续滑动之后执行第二过 滤,所述第一滑动窗口刚刚产生两个新的第一数据集合。
根据实施方式的一种模式,第一过滤和第二过滤彼此跟随,直 到处理初始集合的所有数据。
根据实施方式的一种模式,神经网络包括在至少一个卷积层和 至少一个池化层之间的至少一个非线性层。
根据实施方式的一种模式,神经网络由以浮点或定点实施的参 数限定。
“浮点”意指由符号、尾数和指数表示的实数。
“定点”意指在该点之后拥有固定数目的位的数字。
“参数”意指,例如,神经网络的权重和限定网络的每个的数 据。
根据另一方面,提出了一种设备,设备包括:初始存储器,旨 在沿着第一正交方向和第二正交方向存储初始数据集合;以及第一 存储器,旨在存储限定卷积神经网络的参数,卷积神经网络被配置 为处理初始数据集合,网络包括跟随有至少一个池化层的至少一个 卷积层;以及计算单元(例如,微处理器),被配置为执行神经网 络的各种层的操作,至少一个卷积层被配置为使用第一滑动窗口, 沿着第一方向,执行对初始数据集合的第一过滤,以便在每次滑动 时产生第一数据集合,并且至少一个池化层被配置为使用第二滑动窗口,沿着第二方向,执行对第一数据集合的第二过滤。
根据一个实施例,第二滑动窗口具有沿着第一方向计数的维度 N,并且其中设备包括处理器,该处理器被配置为将第一滑动窗口 的滑动限制为沿着第一方向的N-1次滑动,设备还包括第一临时存 储器,第一临时存储器被配置为存储N个第一数据集合。
根据一个实施例,初始数据集合根据多个行和多个列以矩阵方 式而被存储,一连串的行沿着第一方向延伸,并且一连串的列沿着 第二方向延伸,每个单独的行沿着第二方向延伸,并且每个单独的 列沿着第一方向延伸。
根据一个实施例,处理器被配置为沿着第一方向逐步幅滑动第 一滑动窗口,并且在每个步幅处使第一滑动窗口遍历对应的行。
根据一个实施例,处理器被配置为:在存储N个第一数据集合 的第一临时存储器上,沿着第二方向滑动第二滑动窗口,以便在每 次滑动时产生第二数据集合,设备还包括第二临时存储器,第二临 时存储器被配置为存储M个第二数据集合。
根据一个实施例,处理器被配置为利用在第一滑动窗口的滑动 期间产生的第一数据集合来循环填充第一临时存储器。
根据一个实施例,处理器被配置为在第一存储器已经执行了多 个循环填充之后,执行第二过滤。
根据一个实施例,处理器被配置为相继执行第一过滤和第二过 滤,直到处理了初始集的所有数据。
根据一个实施例,神经网络包括在至少一个卷积层和至少一个 池化层之间的至少一个非线性层。
根据一个实施例,神经网络的参数以浮点或固定精度实施。
还提出了一种包括该设备的微控制器。
附图说明
通过阅读对实施方式和实施例的完全非限制性模式的详细描 述以及附图,本发明的其他优点和特性将变得清楚,在附图中:
图1示意性地图示了本发明的一个实施例,
图2示意性地图示了本发明的实施方式的一种模式和实施例,
图3示意性地图示了本发明的实施方式的一种模式和实施例,
图4A示意性地图示了本发明的实施方式的一种模式和实施 例,
图4B示意性地图示了本发明的实施方式的一种模式和实施 例,以及
图4C示意性地图示了本发明的实施方式的一种模式和实施 例。
具体实施方式
在图1中,附图标记MC指定电子对象,例如,微控制器、代 码生成器或可以包含硬件或嵌入式软件架构的任何其他对象。
对象MC包括设备MO,设备MO例如是包括初始存储器MV 的模块,初始存储器MV例如是被配置为存储初始数据集合DI的 RAM(意指“随机存取存储器”)易失性存储器。
设备MO还包括非易失性存储器MNV,非易失性存储器MNV 例如是ROM(意指“只读存储器”)存储器,其旨在存储限定卷 积神经网络RN的参数。
“参数”意指神经网络的权重和限定神经网络每个层的数据。
参数可以以定点或浮点实施。
“浮点”意指由符号、尾数和指数表示的实数。
“定点”意指在该点之后具有固定数目的位的数字。
这种配置使得可以以特定的方式处理存储在初始存储器MV 中的数据DI并递送输出数据。
相应地,设备MO包括计算单元UC(例如,微处理器),其 被配置为执行由神经网络RN的每层限定的操作。
因此,计算单元UC被耦合到非易失性存储器MNV,以便提 取神经网络RN的每层的参数。计算单元UC还被耦合到易失性存 储器MV,以便提取将对其执行处理的初始数据集合DI。
设备MO包括第一临时存储器MEM1和第二临时存储器 MEM2。
“临时”意指缓冲器存储器(通常由术语“缓冲器”指代)。
第一临时存储器MEM1和第二临时存储器MEM2被耦合到计 算单元UC。
第一临时存储器MEM1和第二临时存储器MEM2被配置为存 储由计算单元UC递送的数据。
设备MO包括处理器MT,处理器MT耦合到计算单元UC并 且被配置为控制要针对每个层执行的操作的数目,并且因此控制由 计算单元UC递送的数据的存储。
处理器可以例如由微处理器内的软件模块和/或由特定的逻辑 电路实施。
图2示意性地图示了由神经网络RN的层对初始数据集合DI 的处理的各个步骤。
神经网络RN包括跟随有至少一个池化层CMC的至少一个卷 积层CV。
卷积层CV使得可以标记在步骤V1中接收的初始数据集合DI 中的一组特定数据的存在。因此,在步骤V2中,卷积层使用图4A、 图4B和图4C中图示的第一滑动窗口F1执行卷积过滤。
第一滑动窗口F1使得可以计算窗口与初始数据集合DI的每个 部分之间的卷积积。
初始数据集合DI作为具有行和列的矩阵出现,一连串的行沿 着第一方向并且因此竖直地延伸,并且一连串的列沿着第二方向 (即水平地)延伸。
第一滑动窗口F1沿着第一方向并且因此竖直地滑动,同时在 每次滑动时,遍历初始数据集合DI的行。在步骤V3每次滑动中产 生第一数据集合D1。
“滑动”在这里意指第一滑动窗口F1遍历初始数据集合DI 的每行。
每个第一数据集合D1被存储在第一临时存储器MEM1中。
神经网络可以包括非线性层CNL,其使得可以改善结果的相 关性。在步骤V4中,将第一数据集合D1作为输入,并且在步骤 V5中产生中间数据集合D11。
中间数据集合D11可以被放置在中间临时存储器中。
非线性层CNL是可选的,第一数据集合D1可以被直接分发到 池化层CMC。
因此,在步骤V6中,池化层CMC接收第一数据集合D1,对 该第一数据集合D1应用“池化”操作,这包括减小数据集合D1 的尺寸,同时保留其重要特性。
相应地,池化层CMC使用图4A、图4B和图4C中图示的第 二滑动窗口F2。
在步骤V7中,第二滑动窗口F2沿着第二方向滑动,并且产 生第一数据集合D2。
每个第二数据集合D2被存储在第二临时存储器MEM2中。
图3示意性地图示了在处理器MT中实施的算法。
该算法允许处理器MT控制要针对每个层执行的操作的数目, 并且因此控制由计算单元UC递送的数据的存储。
当处理器MT在步骤S1中检测到卷积层CV的存在时,处理 器MT在步骤S2中将变量i初始化为0,并且将变量N1也初始化 为0。
变量i表示索引,该索引遍历作为卷积层的输出而生成的行的 列表。
变量N1表示存储在第一临时存储器MEM1中的第一集合D1 的数目。
在步骤S2中,第一临时存储器MEM1和第二临时存储器 MEM2为空。
在步骤S3中,第一滑动窗口F1沿着第一方向并且因此竖直地 滑动,同时在每次滑动时,遍历初始数据集合DI的行。每次滑动 产生第一数据集合D1。在步骤S4中,可以将第一数据集合D1分 发给非线性层CNL,该非线性层CNL产生中间数据集合D11。该 步骤S4是可选的。
在步骤S5中,由于第一数据集合D1刚刚被存储在临时存储 器MEM1中,因此变量N1的值增加1。
在步骤S6中,第一比较在变量N1和第三变量N之间被执行, 该第三变量N表示第二滑动窗口F2的维度,并且表示第一临时存 储器MEM1可以容纳的第一数据集合D1的最大数目。
如果变量N1的值等于值N,则这意味着第一临时存储器 MEM1包括N个第一数据集合D1。因此,第一临时存储器MEM1 不能再容纳更多的第一数据集合。
如果变量N1的值小于值N,则这意味着第一临时存储器 MEM1可以存储更多的第一数据集合D1。
鉴于在该示例中,仅存储了一个第一数据集合D1,变量N1 的值小于值N,并且因此转到步骤S7,其中变量i的值增加1。
在步骤S8中,第二比较在变量i的值和变量Max之间被执行, 变量Max表示作为卷积层的输出而生成的行的最大数目。
如果变量i的值大于变量Max的值,则这意味着所生成的所有 行已经被遍历。如果有任何行剩余,则在步骤S9中处理器MT将 该行传递给下一个卷积层CV。
在相反的情况下,重复步骤S3、S4和S5,直到变量N1的值 等于变量N的值。
此后,我们转到步骤S10,在该步骤S10中,池化层CMC在 被包含在第一临时存储器MEM1中的N个第一数据集合D1上沿着 第二方向使用第二过滤窗口F2,并且产生第二数据集合D2。
在步骤S11中,从变量N1的值中减去限定数N2,限定数N2 表示在执行第二过滤之前要被执行的第一窗口F1的滑动的次数。
变量N1的值等于N1-N2。
在步骤S12中,变量i的值增加1,并且在步骤S13中,我们 验证变量i的值是否小于变量Max的值。
如果否,我们在步骤S14中传递给下一个卷积层CV,该卷积 层CV将使用另一第一过滤窗口F1,并且将遍历初始数据集合DI。
如果是,我们继续利用第一过滤窗口对初始数据集合D1进行 N2次过滤,也就是说,直到N1等于N为止。
N2个第一数据集合D1覆写第一临时存储器MEM1中最旧的 第一数据集合D1。因此,计算单元UC执行循环填充。
第二滑动窗口F2在包括两个新的第一集合D1的第一临时存 储器MEM1上执行滑动,并且产生第二集合D2。
该算法被重复,直到处理了初始数据集合DI的所有行。
图4A、图4B和图4C示意性地图示了算法的实施方式。
在图4A中,第一滑动窗口F1第一次在初始数据集合DI的第 一行之上滑动,并且产生第一数据集合D1,该第一数据集合D1将 被存储在第一临时存储器MEM1中。N1现在等于1。
第一窗口F1第二次在初始数据集合DI的第二行之上滑动,并 且产生第一数据集合D1,该第一数据集合D1将被存储在第一临时 存储器MEM1中。N2现在等于2。
滑动被重复直到N1等于N,这里N为5。N表示第二滑动窗 口的高度。
因此,第一临时存储器包含N个第一数据集合D1。
第二滑动窗口F2在第一临时存储器MEM1上沿着第二方向滑 动,并且产生第二数据集合D2,该第二数据集合D2将被存储在第 二临时存储器MEM2中。
从N1中减去N2,在这里N2等于2。因此,N1等于3。
第一滑动窗口F1第六次在初始数据集合DI的第六行之上滑 动,并且产生第一数据集合D1。N1等于4。
该第一数据集合D1覆写最旧的第一数据集合D1。
第一窗口F1第七次在初始数据集合DI的第七行上滑动,并且 产生第一数据集合D1。N1等于5。
该第一数据集合D1覆写最旧的第一数据集合D1。
应当注意,第一窗口F1可以例如不在初始数据集合DI的每个 行上滑动。第一窗口F1可以具有滑动步幅。
在图4B中,第二滑动窗口F2在包含两个新的第一数据集合 D1的第一临时存储器MEM1之上滑动,并且产生第二数据集合D2, 该第二数据集合D2将被存储在第二临时存储器MEM2中。
从N1中减去N2,在这里N2等于2。因此,N1等于3。
图4B和图4C中的相同步骤被重复,直到初始数据集合DI中 不再有要被处理的任何行。

Claims (22)

1.一种通过卷积神经网络处理初始数据集合的方法,所述卷积神经网络包括跟随有池化层的卷积层,所述初始数据集合沿着正交的第一方向和第二方向被存储在初始存储器中,所述方法包括:
由所述卷积层使用第一滑动窗口,沿着所述第一方向,执行对所述初始数据集合的第一过滤,所述第一滑动窗口的每次滑动产生第一数据集合;以及
由所述池化层使用第二滑动窗口,沿着所述第二方向,执行对所述第一数据集合的第二过滤。
2.根据权利要求1所述的方法,其中所述卷积层包括多个卷积层,并且所述池化层包括多个池化层。
3.根据权利要求1所述的方法,其中所述初始数据集合根据多个行和多个列以矩阵方式被存储,所述多个行沿着所述第一方向延伸,并且所述多个列沿着所述第二方向延伸,每个单独的行沿着所述第二方向延伸,并且每个单独的列沿着所述第一方向延伸。
4.根据权利要求3所述的方法,其中所述第一滑动窗口沿着所述第一方向逐步幅滑动,并且在每个步幅处遍历对应的所述行。
5.根据权利要求1所述的方法,其中所述第一过滤和所述第二过滤彼此跟随,直到所述初始数据集合的所有数据被处理为止。
6.根据权利要求1所述的方法,其中所述神经网络包括在所述卷积层与所述池化层之间的非线性层。
7.根据权利要求1所述的方法,其中所述神经网络由以浮点或固定精度实施的参数限定。
8.一种通过卷积神经网络处理初始数据集合的方法,所述卷积神经网络包括跟随有池化层的卷积层,所述初始数据集合沿着正交的第一方向和第二方向被存储在初始存储器中,所述方法包括:
由所述卷积层使用第一滑动窗口,沿着所述第一方向,执行对所述初始数据集合的第一过滤,所述第一滑动窗口的每次滑动产生第一数据集合;
由所述池化层使用第二滑动窗口,沿着所述第二方向,执行对所述第一数据集合的第二过滤,其中所述第二滑动窗口具有沿着所述第一方向计数的维度N,所述第一过滤包括所述第一滑动窗口沿着所述第一方向的N-1次滑动;以及
将N个第一数据集合存储在第一临时存储器中。
9.根据权利要求8所述的方法,其中所述第二过滤包括:所述第二滑动窗口在存储所述N个第一数据集合的所述第一临时存储器上沿着所述第二方向的滑动,每次滑动产生第二数据集合,所述第二过滤包括M个第二数据集合在第二临时存储器中的第二存储。
10.根据权利要求8所述的方法,其中所述第一存储包括由在所述第一滑动窗口的每次滑动时产生的所述第一数据集合来循环填充所述第一临时存储器。
11.根据权利要求10所述的方法,其中所述第二过滤在对所述第一临时存储器的多个循环填充之后被执行。
12.一种设备,包括:
初始存储器,被配置为沿着正交的第一方向和第二方向存储初始数据集合;
第一存储器,被配置为存储限定卷积神经网络的参数,所述卷积神经网络被配置为处理所述初始数据集合,所述卷积神经网络包括跟随有池化层的卷积层;以及
计算单元,被配置为执行所述神经网络的所述卷积层和所述池化层的操作,所述卷积层被配置为使用第一滑动窗口,沿着所述第一方向,执行对所述初始数据集合的第一过滤,以便在每次滑动时产生第一数据集合,并且所述池化层被配置为使用第二滑动窗口,沿着所述第二方向,执行对所述第一数据集合的第二过滤。
13.根据权利要求12所述的设备,其中所述第二滑动窗口具有沿着所述第一方向计数的维度N,所述设备包括处理器,所述处理器被配置为将所述第一滑动窗口的所述滑动限制为沿着所述第一方向的N-1次滑动,所述设备还包括第一临时存储器,所述第一临时存储器被配置为存储N个第一数据集合。
14.根据权利要求13所述的设备,其中所述初始数据集合根据多个行和多个列以矩阵方式被存储,所述多个行沿着所述第一方向延伸,并且所述多个列沿着所述第二方向延伸,每个单独的行沿着所述第二方向延伸,并且每个单独的列沿着所述第一方向延伸。
15.根据权利要求14所述的设备,其中所述处理器被配置为沿着所述第一方向逐步幅滑动所述第一滑动窗口,并且被配置为在每个步幅处使所述第一滑动窗口遍历对应的所述行。
16.根据权利要求13所述的设备,其中所述处理器被配置为:在存储所述N个第一数据集合的所述第一临时存储器上,沿着所述第二方向滑动所述第二滑动窗口,以便在每次滑动时产生第二数据集合,所述设备还包括第二临时存储器,所述第二临时存储器被配置为存储M个第二数据集合。
17.根据权利要求13所述的设备,其中所述处理器被配置为:利用在所述第一滑动窗口的所述滑动期间产生的所述第一数据集合,来执行对所述第一临时存储器的循环填充。
18.根据权利要求17所述的设备,其中所述处理器被配置为:一旦所述第一存储器已经执行了多个循环填充,就执行所述第二过滤。
19.根据权利要求13所述的设备,其中所述处理器被配置为相继执行所述第一过滤和所述第二过滤,直到处理了所述初始数据集合的所有数据为止。
20.根据权利要求12所述的设备,其中所述神经网络包括在所述卷积层与所述池化层之间的非线性层。
21.根据权利要求12所述的设备,其中所述神经网络由以浮点或固定精度实施的参数限定。
22.根据权利要求12所述的设备,其中所述设备是微控制器。
CN201911229922.9A 2018-12-05 2019-12-04 用于通过神经网络处理数据的方法和设备 Active CN111275162B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1872330A FR3089664A1 (fr) 2018-12-05 2018-12-05 Procédé et dispositif pour réduire la charge de calcul d’un microprocesseur destiné à traiter des données par un réseau de neurones à convolution
FR1872330 2018-12-05

Publications (2)

Publication Number Publication Date
CN111275162A true CN111275162A (zh) 2020-06-12
CN111275162B CN111275162B (zh) 2024-01-23

Family

ID=66542337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911229922.9A Active CN111275162B (zh) 2018-12-05 2019-12-04 用于通过神经网络处理数据的方法和设备

Country Status (4)

Country Link
US (1) US11645519B2 (zh)
EP (1) EP3663989A1 (zh)
CN (1) CN111275162B (zh)
FR (1) FR3089664A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464801B (zh) * 2020-11-26 2023-04-18 配天机器人技术有限公司 一种机器人数据处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106779060A (zh) * 2017-02-09 2017-05-31 武汉魅瞳科技有限公司 一种适于硬件设计实现的深度卷积神经网络的计算方法
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN108038107A (zh) * 2017-12-22 2018-05-15 东软集团股份有限公司 基于卷积神经网络的语句情感分类方法、装置及其设备
US20180232629A1 (en) * 2017-02-10 2018-08-16 Kneron, Inc. Pooling operation device and method for convolutional neural network
WO2018200076A1 (en) * 2017-04-27 2018-11-01 Apple Inc. Convolution engine with per-channel processing of interleaved channel data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108780524A (zh) * 2017-10-31 2018-11-09 深圳市大疆创新科技有限公司 用于神经网络的运算装置、电路及相关方法
CN110322389B (zh) * 2018-03-29 2023-03-21 上海熠知电子科技有限公司 池化方法、装置及系统、计算机可读存储介质
WO2019227322A1 (zh) * 2018-05-30 2019-12-05 深圳市大疆创新科技有限公司 池化装置和池化方法
US20200090046A1 (en) * 2018-09-14 2020-03-19 Huawei Technologies Co., Ltd. System and method for cascaded dynamic max pooling in neural networks
CN110770740A (zh) * 2018-09-30 2020-02-07 深圳市大疆创新科技有限公司 基于卷积神经网络的图像处理方法和设备,以及无人机

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN106779060A (zh) * 2017-02-09 2017-05-31 武汉魅瞳科技有限公司 一种适于硬件设计实现的深度卷积神经网络的计算方法
US20180232629A1 (en) * 2017-02-10 2018-08-16 Kneron, Inc. Pooling operation device and method for convolutional neural network
WO2018200076A1 (en) * 2017-04-27 2018-11-01 Apple Inc. Convolution engine with per-channel processing of interleaved channel data
CN108038107A (zh) * 2017-12-22 2018-05-15 东软集团股份有限公司 基于卷积神经网络的语句情感分类方法、装置及其设备

Also Published As

Publication number Publication date
EP3663989A1 (fr) 2020-06-10
CN111275162B (zh) 2024-01-23
US20200184331A1 (en) 2020-06-11
US11645519B2 (en) 2023-05-09
FR3089664A1 (fr) 2020-06-12

Similar Documents

Publication Publication Date Title
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
CN109754359B (zh) 一种应用于卷积神经网络的池化处理的方法及系统
JP2019032808A (ja) 機械学習方法および装置
KR20160034814A (ko) 뉴럴 네트워크를 수반한 클라이언트 장치 및 그것을 포함하는 시스템
CN111860398B (zh) 遥感图像目标检测方法、系统及终端设备
US11531888B2 (en) Method, device and computer program for creating a deep neural network
CN111291875B (zh) 用于确定存储器大小的方法和设备
CN107610146A (zh) 图像场景分割方法、装置、计算设备及计算机存储介质
CN111967573A (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN109543029B (zh) 基于卷积神经网络的文本分类方法、装置、介质和设备
CN112183295A (zh) 行人重识别方法、装置、计算机设备及存储介质
CN109145107B (zh) 基于卷积神经网络的主题提取方法、装置、介质和设备
US10997528B2 (en) Unsupervised model evaluation method, apparatus, server, and computer-readable storage medium
CN111275162B (zh) 用于通过神经网络处理数据的方法和设备
CN109325530A (zh) 基于少量无标签数据的深度卷积神经网络的压缩方法
CN110728351A (zh) 数据处理方法、相关设备及计算机存储介质
CN109344877B (zh) 一种样本数据处理方法、样本数据处理装置及电子设备
RU2557755C1 (ru) Способ сжатия изображения при фрактальном кодировании
CN116304569A (zh) 一种用于分布式光纤传感器缺失数据的填补方法
CN110781223A (zh) 数据处理方法及装置、处理器、电子设备及存储介质
CN115565115A (zh) 一种舾装件智能识别方法、计算机设备
CN114970985A (zh) 维修器材需求预测方法、装置及终端
EP3757902A1 (en) Information processing device, information processing program, and information processing method
CN114496068A (zh) 蛋白质二级结构预测方法、装置、设备及存储介质
Choi et al. Doob–Martin compactification of a Markov chain for growing random words sequentially

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant