CN113052303A - 用于控制神经网络电路的数据输入和输出的设备 - Google Patents

用于控制神经网络电路的数据输入和输出的设备 Download PDF

Info

Publication number
CN113052303A
CN113052303A CN202010919746.8A CN202010919746A CN113052303A CN 113052303 A CN113052303 A CN 113052303A CN 202010919746 A CN202010919746 A CN 202010919746A CN 113052303 A CN113052303 A CN 113052303A
Authority
CN
China
Prior art keywords
bit
sequence
neural network
data sequence
compressed data
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.)
Pending
Application number
CN202010919746.8A
Other languages
English (en)
Inventor
权亨达
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113052303A publication Critical patent/CN113052303A/zh
Pending legal-status Critical Current

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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

公开用于控制神经网络电路的数据输入和输出的设备。所述控制设备包括:存储器;编码电路,被配置为:接收数据序列,生成压缩的数据序列,在压缩的数据序列中,数据序列的位串中的连续无效位被压缩成压缩的数据序列的单个位,生成指示压缩的数据序列的位串中的有效位和无效位的有效性确定序列,以及将压缩的数据序列和有效性确定序列写入到存储器;以及解码电路,被配置为:从存储器读取压缩的数据序列和有效性确定序列,以及基于有效性确定序列,确定压缩的数据序列的位串中的被设置用于发送到神经网络电路的位,使得神经网络电路省略关于非连续无效位的操作。

Description

用于控制神经网络电路的数据输入和输出的设备
本申请要求于2019年12月27日提交到韩国知识产权局的第 10-2019-0176097号韩国专利申请的权益,所述韩国专利申请的全部公开出于 所有目的通过引用包括于此。
技术领域
以下描述涉及用于控制神经网络电路的数据输入和输出的方法和设备。
背景技术
与传统的基于规则的智能系统不同,人工智能(AI)系统可以是使得机 器能够学习和判断并且变得智能的计算机系统。随着AI系统被使用越多, AI系统可具有提高的识别率并且可更准确地理解用户的偏好。
AI技术可包括机器学习(例如,深度学习)和利用机器学习的元素技术 (elementtechniques)。机器学习可以是对输入数据的特征进行分类/学习的算 法技术,元素技术可以是通过使用机器学习算法(诸如,深度学习)来实现 功能(诸如,认知和判断)的技术,并且可在诸如语言理解、视觉理解、推 断/预测、知识表示和运动控制的技术领域中实施。
人工智能技术可应用于如下的各种领域。语言理解可以是识别和应用/ 处理语言/字符的技术,并且可包括自然语言处理、机器翻译、对话系统、问 答和语音识别/合成。视觉理解可以是像视觉一样识别和处理对象的技术,并 且可包括对象识别、对象追踪、图像检索、人物识别、场景理解、空间理解 和图像增强。推断/预测可以是判断信息并执行逻辑推断和预测的技术,并且 可包括基于知识/概率的推断、优化预测、基于偏好的规划和推荐。知识表示 可以是将人类经验信息自动处理成知识数据的技术,并且可包括知识构造(数 据生成/分类)和知识管理(数据利用)。运动控制可以是控制车辆的自主驾 驶和机器人的移动的技术,作为非限制性示例,可包括例如移动控制(导航、 碰撞、驾驶)和操作控制(动作控制)。
发明内容
提供本发明内容以便以简化的形式介绍将在下面的具体实施方式中进一 步描述的构思的选择。本发明内容不意图确定要求权利的主题的关键特征或 必要特征,也不意图用于帮助确定要求权利的主题的范围。
在一个总体方面,一种神经网络深度学习数据控制设备包括:存储器; 编码电路,被配置为:接收数据序列,生成压缩的数据序列,在压缩的数据 序列中,数据序列的位串中的连续无效位被压缩成压缩的数据序列的单个位, 生成指示压缩的数据序列的位串中的有效位和无效位的有效性确定序列,以 及将压缩的数据序列和有效性确定序列写入到存储器;以及解码电路,被配 置为:从存储器读取压缩的数据序列和有效性确定序列,以及基于有效性确 定序列,确定压缩的数据序列的位串中的被设置为发送到神经网络电路的位,使得神经网络电路省略关于非连续无效位的操作。
压缩的数据序列的所述单个位可指示数据序列的位串中的连续无效位的 数量。
解码电路可包括:缓冲器,被配置为顺序地存储压缩的数据序列和有效 性确定序列,并且解码电路可被配置为:存储第一指针和第二指针,第一指 针指示将被发送到神经网络电路的压缩的数据序列的当前位存储在缓冲器中 的位置,第二指针指示在当前位的下一循环将被发送到神经网络电路的压缩 的数据序列的下一位存储在缓冲器中的位置。
为了确定被设置为发送到神经网络电路的所述位,解码电路可被配置为: 基于有效性确定序列确定与第一指针对应的当前位是否有效;响应于当前位 无效,跳过向神经网络电路发送当前位;以及响应于当前位有效,将当前位 发送到神经网络电路。
解码电路可被配置为:基于有效性确定序列确定与第二指针对应的下一 位是否有效;响应于下一位有效,将第一指针移动到下一位存储在缓冲器中 的位置;以及响应于下一位无效,将第一指针移动到在下一位的下一循环将 被发送到神经网络电路的位存储在缓冲器中的位置。
解码电路可被配置为:基于有效性确定序列确定与第二指针对应的下一 位是否有效;响应于下一位有效,将第二指针移动到在下一位的下一循环将 被发送到神经网络电路的位存储在缓冲器中的位置;以及响应于下一位无效, 将第二指针移动到在下一位的下下个循环将被发送到神经网络电路的位存储 在缓冲器中的位置。
解码电路可被配置为:基于有效性确定序列来确定跳过神经网络电路的 操作处理。
解码电路可被配置为:基于与第二指针对应的下一位来判断是否跳过神 经网络电路的操作处理。
解码电路可被配置为:基于有效性确定序列确定与第二指针对应的下一 位是否有效;响应于下一位有效,不跳过神经网络电路的操作处理;以及响 应于下一位无效,跳过神经网络电路的操作处理。
解码电路可被配置为:响应于下一位无效,将神经网络电路的操作处理 跳过下一位的位值。
解码电路可被配置为:响应于下一位无效,将神经网络电路的操作处理 跳过通过将值1与下一位的位值相加而获得的值。
解码电路可被配置为:存储第三指针,第三指针指示压缩的数据序列和 有效性确定序列将被存储在缓冲器中的位置。
有效位可以是具有大于预定阈值的位值的位,无效位可以是具有小于或 等于预定阈值的位值的位。
有效性确定序列中的与压缩的数据序列中的有效位的位置对应的位置处 的位值可以是“1”,有效性确定序列中的与压缩的数据序列中的无效位的位 置对应的位置处的位值可以是“0”。
解码电路可被配置为使用有效性确定序列作为时钟门控信号来执行神经 网络电路的操作。
缓冲器可包括环形缓冲器。
编码电路可被配置为:通过将数据序列的位串中的具有相同位值的连续 有效位压缩成压缩的数据序列的另一单个位来生成压缩的数据序列。
解码电路可被配置为:响应于数据序列包括多个重用数据,存储用于标 识所述多个重用数据的第四指针。
解码电路可被配置为:当并行地读取多个压缩的数据序列时,针对所述 多个压缩的数据序列添加位以具有相同的长度。
数据序列可指示神经网络电路的神经网络的节点之间的边的连接强度。
所述设备可包括神经网络电路,其中,神经网络电路被配置为:响应于 接收到压缩的数据序列的确定的位串,通过重新确定连接强度中的一个或多 个以进行丢弃操作来训练神经网络。
在另一总体方面,一种神经网络系统,包括神经网络电路和用于控制神 经网络电路的数据输入和输出的控制设备。
在一个总体方面,一种训练用于识别图像的神经网络的方法,包括:获 得训练图像数据;以及基于训练图像数据对神经网络执行训练。在针对神经 网络的当前层的训练操作之前,原始用于当前层的操作的数据序列被处理, 处理后的数据序列被应用于当前层的训练操作,使得在当前层的训练操作中 省略关于无效位的操作。对原始用于当前层的操作的数据序列进行处理的步 骤包括:基于原始用于当前层的操作的数据序列生成压缩的数据序列,在压 缩的数据序列中,数据序列的位串中的连续无效位被压缩成压缩的数据序列的单个位;生成用于确定压缩的数据序列的位串中的有效位和无效位的有效 性确定序列;将压缩的数据序列和有效性确定序列写入存储器;从存储器读 取压缩的数据序列和有效性确定序列;以及基于有效性确定序列,确定压缩 的数据序列的位串中的被设置为应用于训练操作的位。
原始用于当前层的操作的数据序列可以是当前层的输入数据和/或当前 层的权重。神经网络的第一层的输入数据可以是训练图像数据,神经网络的 下一层的输入数据可以是当前层的输出数据。
在另一总体方面,一种处理器实现的神经网络深度学习数据控制方法包 括:接收数据序列;生成压缩的数据序列,在压缩的数据序列中,数据序列 的位串中的连续无效位被压缩成压缩的数据序列的单个位;生成用于确定压 缩的数据序列的位串中的有效位和无效位的有效性确定序列;将压缩的数据 序列和有效性确定序列写入存储器;从存储器读取压缩的数据序列和有效性 确定序列;以及基于有效性确定序列,确定压缩的数据序列的位串中的被设 置为发送到神经网络电路的位,使得神经网络电路省略关于非连续无效位的 操作。
压缩的数据序列的所述单个位可指示数据序列的位串中的连续无效位的 数量。
所述方法可包括:顺序地存储压缩的数据序列和有效性确定序列;以及 存储第一指针和第二指针,第一指针指示将被发送到神经网络电路的压缩的 数据序列的当前位存储在缓冲器中的位置,第二指针指示在当前位的下一循 环将被发送到神经网络电路的压缩的数据序列的下一位存储在缓冲器中的位 置。
确定的步骤可包括:基于有效性确定序列确定与第一指针对应的当前位 是否有效;响应于当前位无效,跳过向神经网络电路发送当前位;以及响应 于当前位有效,将当前位发送到神经网络电路。
所述方法可包括:基于有效性确定序列确定与第二指针对应的下一位是 否有效;响应于下一位有效,将第一指针移动到下一位存储在缓冲器中的位 置;以及响应于下一位无效,将第一指针移动到在下一位的下一循环将被发 送到神经网络电路的位存储在缓冲器中的位置。
所述方法可包括:基于有效性确定序列确定与第二指针对应的下一位是 否有效;响应于下一位有效,将第二指针移动到在下一位的下一循环将被发 送到神经网络电路的位存储在缓冲器中的位置;以及响应于下一位无效,将 第二指针移动到在下一位的下下个循环将被发送到神经网络电路的位存储在 缓冲器中的位置。
所述方法可包括:基于与第二指针对应的下一位,确定是否跳过神经网 络电路的操作处理。
所述方法可包括:基于有效性确定序列确定与第二指针对应的下一位是 否有效;响应于下一位有效,不跳过神经网络电路的操作处理;以及响应于 下一位无效,跳过神经网络电路的操作处理。
跳过的步骤可包括:响应于下一位无效,将神经网络电路的操作处理跳 过下一位的位值。
所述方法可包括:存储第三指针,第三指针指示压缩的数据序列和有效 性确定序列将被存储在缓冲器中的位置。
生成的步骤可包括:通过将数据序列的位串中具有相同位值的连续有效 位压缩成压缩的数据序列的另一单个位来生成压缩的数据序列。
所述方法可包括:响应于数据序列包括多个重用数据,存储用于标识所 述多个重用数据的第四指针。
所述方法可包括:当并行读取多个压缩的数据序列时,针对所述多个压 缩的数据序列添加位以具有相同长度。
一种非暂时性计算机可读存储介质可存储指令,所述指令在由处理器执 行时,配置处理器执行所述方法。
在另一总体方面,一种处理器实现的神经网络数据控制方法包括:接收 指示神经网络的节点之间的连接的连接强度的数据序列;生成压缩的数据序 列,压缩的数据序列包括数据序列的大于阈值的位和具有基于数据序列的小 于或等于阈值的连续位的数量确定的值的位;以及通过基于压缩的数据序列 执行所述一个或多个连接的丢弃操作来训练神经网络。
从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1A示出训练神经网络的方法的示例。
图1B示出省略神经网络中的操作以改善学习性能的示例。
图2示出控制设备的示例。
图3A示出由编码电路生成的序列的示例。
图3B示出由编码电路生成的序列的示例。
图4A至图4G示出基于控制设备的输出执行神经网络中的操作的示例。
图5示出基于控制设备的输出执行神经网络中的操作的示例。
图6示出零选通(zero gating)的示例。
图7示出通过存储迭代地使用的值的范围来增加重用率的示例。
图8示出在脉动阵列中使用零选通来降低功耗的示例。
图9示出当数据被并行存储时控制数据输入和输出的示例。
图10示出控制数据输入和输出的方法的应用的示例。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考 标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了 清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
提供以下具体实施方式以帮助读者获得对在此描述的方法、设备和/或系 统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/ 或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺 序仅仅是示例,并且不限于在此所阐述的操作顺序,而是除了必须以特定顺 序发生的操作之外,操作顺序可如在理解本申请的公开之后将是清楚地那样 改变。此外,为了更加清楚和简明,可省略在理解本申请的公开之后已知的 特征的描述。
尽管在此使用诸如“第一”或“第二”的术语来描述各种构件、组件、 区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语限制。 更确切地说,这些术语仅用于将一个构件、组件、区域、层或部分与另一构 件、组件、区域、层或部分进行区分。因此,在不脱离示例的教导的情况下, 在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部 分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
贯穿说明书,当组件被描述为“连接到”或“结合到”另一组件时,该 组件可直接“连接到”或“结合到”另一组件,或者可存在介于两者之间的 一个或更多个其他组件。相比之下,当元件被描述为“直接连接到”或“直 接结合到”另一元件时,可不存在介于两者之间的其他元件。同样地,相似 的表达,例如,“在......之间”与“紧接在......之间”、“与......邻近”与“紧邻” 也应以相同的方式解释。如在此使用的,术语“和/或”包括相关所列项中的 任意一个和任意两个或更多个的任意组合。
如在此使用的,除非上下文另外清楚地指示,否则单数形式也意图包括 复数形式。在此使用的术语仅用于描述各种示例,而不用于限制本公开。除 非上下文另外清楚地指示,否则单数形式也意图包括复数形式。术语“包括”、 “包含”和“具有”说明存在阐述的特征、数量、操作、构件、元件和/或它 们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、 元件和/或它们的组合。
除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语) 具有与本公开所属领域的普通技术人员通常理解的含义和基于理解本申请的 公开之后通常理解的含义相同的含义。除非在此明确地如此定义,否则术语 (诸如在通用词典中定义的术语)将被解释为具有与它们在相关领域的上下 文和本申请的公开中的含义一致的含义,并且不以理想化或过于形式化的含 义进行解释。在此关于示例或实施例使用术语“可”(例如,关于示例或实施 例可包括或实现什么)表示存在至少一个包括或实现这样的特征的示例或实 施例,而所有示例不限于此。
示例可被实现为各种类型的产品(诸如,个人计算机、膝上型计算机、 平板计算机、智能电话、电视、智能家用电器、智能车辆、自助服务机和可 穿戴装置)或用各种类型的产品来实现。在下文中,将参照附图详细描述示 例,其中,相同的附图参考标号用于相同的元件。
图1A示出训练神经网络的方法的示例。
参照图1A,神经网络100可包括输入层120、隐藏层140和输出层145。 在图1A中,神经网络100可以是进行分类并输出包括在输入数据中的信息 的全连接网络。例如,神经网络100可以是用于识别图像的神经网络。详细 地,如果输入数据是图像数据,则神经网络100可将通过对包括在图像数据 中的图像对象的类型进行分类而获得的结果数据输出为输出数据。
形成神经网络100的多个层可均包括接收数据的多个节点(例如,节点 125)。如图1A中所示,两个相邻层可通过多个边(edge)或连接(例如,边 130)进行连接,两个节点可通过边(例如,边135)进行连接。每个节点可 包括权重,并且神经网络100可基于通过执行(例如,基于图像数据获得的) 输入信号与权重之间的运算(例如,乘法运算)而确定的值来确定输出数据。
参照图1A,输入层120可接收输入数据(例如,包括作为图像对象的猫 的输入数据110)。
此外,神经网络100可包括:形成在输入层120与第一隐藏层之间的第 一边层(edge layer)150、形成在第一隐藏层与第二隐藏层之间的第二边层 155、形成在第二隐藏层与第三隐藏层之间的第三边层160、以及形成在第三 隐藏层与输出层145之间的第四边层170。
包括在神经网络100的输入层120中的多个节点可接收与输入数据110 对应的信号。通过包括在隐藏层140中的多个层的操作,输出层145可输出 与图像数据110对应的输出数据175。在图1A的示例中,神经网络100可通 过执行操作对包括在输入图像中的图像对象的类型进行分类,来输出“猫概 率:98%”的输出数据175作为图像识别结果。为了增加从神经网络100输 出的输出数据175的准确度,可通过在从输出层145至输入层120的方向上执行学习或训练(例如,通过一个或多个学习技术(诸如,神经网络的未被 丢弃的剩余节点的反向传播))来校正权重以增加输出数据的准确度。
如上所述,神经网络100可通过学习来调整层中的一个或多个节点的连 接权重。在一个示例中,在调整权重的过程期间可能发生过拟合。过拟合可 表示由于过度集中于训练数据而导致针对新输入数据的输出精度降低的情况。 为了解决这样的过拟合问题,可使用利用丢弃(dropout)或修剪的操作。诸 如丢弃或修剪的操作可以是通过省略神经网络中的操作(例如,被确定为不 必要的操作)来改善学习性能的技术。
图1B示出省略神经网络中的操作(例如,被确定为不必要的操作)以 改善学习性能的示例。
参照图1B,示出了全连接神经网络180和部分连接神经网络190。部分 连接神经网络190可比全连接神经网络180具有更少的节点和更少的边。例 如,部分连接神经网络190可以是被应用了丢弃的网络。
模型组合可用于改善全连接神经网络180的学习性能。对于模型组合, 可使用不同的训练数据来执行训练,或者模型可具有不同的结构。然而,当 使用深度网络时,训练一个或多个网络以对不同类型的图像对象进行准确地 估计、解释或分类可包括训练多个网络(例如,基于各个类型的图像对象来 训练每个网络),这可包括执行大量的计算。为了减少训练一个或多个网络以 准确地对不同类型的图像对象进行分类而执行的计算量,丢弃可在网络的学 习循环期间随机地省略神经元的一部分,而不是训练多个网络。在这个示例中,使用丢弃训练网络将网络配置为对不同类型的图像对象进行精确地分类, 通过省略神经元产生了像指数地训练各种模型的效果,从而达到模型组合的 效果。
参照图1B,部分连接神经网络190可比全连接神经网络180具有更少的 边。因此,部分连接神经网络190可在指示节点之间的连接的边序列中包括 指示“断开”的多个位值(bit value)“0”。
在下文中,将详细描述省略神经网络操作中的操作(例如,被确定为不 必要的操作)的实际方法。根据本公开的一个或多个实施例,可以以低功率 快速执行神经网络(例如,全连接网络)的操作处理中使用的矩阵和向量的 乘法。
图2示出控制设备的示例。
参照图2,控制设备200可包括存储器210、编码电路220和解码电路 230。控制设备200可连接到执行神经网络的深度学习操作的神经网络电路 240。在一个示例中,人工智能系统可包括控制设备200和神经网络电路240。 控制设备200可接收在神经网络电路240的操作处理期间输出的信息,并且 将由控制设备200生成的信息发送到神经网络电路240。
神经网络电路240可接收训练图像数据,并基于训练图像数据执行深度 学习或训练。神经网络电路240可通过包括输入层、隐藏层和输出层的神经 网络执行训练操作。这里,隐藏层可包括多个层(例如,第一层、第二层和 第三层)。在一个示例中,神经网络电路240的输入层获得训练图像数据,并 基于训练图像数据输出输入层的输出数据,作为后续的隐藏层的输入数据。 神经网络电路240的输出层基于前一层的输出数据输出图像识别结果。以上 参照图1A至1B描述了由神经网络电路240执行的神经网络的非限制性示例 操作。
控制设备200可以以先进先出(FIFO)方式从神经网络电路240接收数 据和向神经网络电路240输出数据。神经网络电路240可以以神经网络的每 层为单位来处理信息。在一个示例中,在神经网络电路240的信息处理过程 期间,对于每层可存在等待时间。例如,可在第一层的操作之后的预定等待 时间内处理或重新处理第一层的操作的结果。处理或再处理操作结果的处理 可通过控制设备200来执行。控制设备200可对第一层的操作结果进行处理, 并将处理后的操作结果发送给神经网络电路240。神经网络电路240从控制 设备200接收的处理后的操作结果可用于第二层的操作。控制设备200可顺 序地从神经网络电路240接收数据,并且顺序地向神经网络电路240输出处 理后的数据。在一个示例中,在针对神经网络电路240的当前层的操作之前, 控制设备200可从神经网络电路240接收作为原始用于当前层的操作的数据 的数据序列,对所述数据序列进行处理,并且向神经网络电路240输出处理 后的数据序列,以用于神经网络电路240的当前层的操作。
神经网络电路240可执行神经网络的操作。例如,神经网络可以是全连 接网络。包括在全连接网络的每层中的节点可具有权重。在全连接网络中, 输入到当前层的信号可在与权重矩阵的运算(例如,乘法运算)之后被输出 (例如,输出到后续层)。这里,输入到当前层中的信号可以是大小为N×1 (N表示当前层的节点的数量)的矩阵数据。此外,与输入到当前层中的信 号相乘的权重矩阵可以是大小为M×N(M表示当前层之后的层的节点的数量;N表示当前层的节点的数量)的矩阵数据。从当前层输出的信号可被输 入到后续层中。这里,从当前层输出的信号可通过控制设备200的控制被输 入到后续层中。例如,从当前层输出的信号可由控制设备200进行处理,并 且处理后的信号可被输入到后续层中。
存储器210可存储具有预定大小的位流或序列。
序列可以是包括与输入特征图相关的信息的序列和/或包括与滤波器的 权重相关的信息的序列。这样的序列可被称为“数据序列”。
例如,序列可包括关于构成神经网络的多个层的节点是否通过边被连接 的信息。详细地,序列可包括指示在包括在神经网络中的层中形成的多个边 的连接或断开的信息。例如,参照图1A,序列可包括与边序列相关的信息, 边序列指示包括在预定层(例如,第一边层150)中的多个边130的连接。
序列的每个位串的位值可指示预定边的连接强度。例如,越大的位值可 指示预定边的越高的连接强度,并且越小的位值可指示预定边的越低的连接 强度。作为序列的指示预定边的连接强度的信息可被称为“数据序列”。
序列可包括与将数据序列的位串中的有效位和无效位区分开的序列相关 的信息。例如,包括在该序列的位串中的值“0”可指示与数据序列中的对应 位的地址对应的位是无效位。此外,包括在该序列的位串中的值“1”可指示 与数据序列中的对应位的地址对应的位是有效位。数据序列中的位是有效还 是无效可通过将位的大小与预定阈值进行比较来确定。在下文中,确定数据 序列的位串中的有效位和无效位的序列可被称为“有效性确定序列”。
存储器210可存储上述数据序列和/或有效性确定序列。数据序列可被压 缩并以压缩的数据序列的形式存储在存储器210中。稍后将参照图3A详细 描述数据序列、压缩的数据序列和有效性确定序列的非限制性示例。
当神经网络电路240终止或完成预定层的操作时,控制设备200可从神 经网络电路240接收该层的操作结果。在一个示例中,层的操作结果可以是 层的数据序列。
编码电路220可处理由控制设备200接收的数据序列,并将处理后的数 据序列存储在存储器210中。例如,处理后的序列可以是通过对数据序列进 行压缩而获得的压缩的序列。此外,例如,处理后的序列可以是将压缩的数 据序列的位串中的有效位和无效位进行区分的有效性确定序列。编码电路220 可生成与神经网络电路240的操作循环对应的处理后的序列。编码电路220 可将处理后的序列写入存储器210。压缩的序列可比压缩之前的序列包括更 少的位串,因此编码电路220可减少对存储器210的写入数量。因此,由于 写入数量的减少,一个或多个实施例的控制设备200的功耗可有利地降低。
解码电路230可将由编码电路220生成的处理后的序列发送到神经网络 电路240,使得神经网络电路240可确定(或重新确定)神经网络中的边的 连接状态(例如,连接强度)。解码电路230可从存储器210读取处理后的序 列,使得控制设备200可顺序地输出处理后的序列中的位串。压缩的序列可 比压缩之前的序列包括更少的位串,因此解码电路230可减少从存储器210 读取的数量。因此,由于读取数量的减少,一个或多个实施例的控制设备200 的功耗可有利地降低。
此外,解码电路230可确定压缩的数据序列的位串中将被发送到神经网 络电路的位,使得神经网络电路省略关于非连续无效位的操作。当省略关于 非连续无效位的操作时,解码电路230可有利地提高操作处理速率。稍后将 参照图4A至图5详细描述解码电路230省略关于非连续无效位的操作的非 限制性示例操作。
在一个实施例中,控制设备200和神经网络电路240可一起包括在神经 网络系统中。
图3A示出由编码电路(例如,图2的编码电路220)生成的序列的示例。
参照图3A,示出了数据序列310、压缩的数据序列320和340以及有效 性确定序列330和350的示例。
数据序列310可包括指示预定边的连接强度的信息。数据序列310可包 括位串。包括在位串中的位的大的位值可指示预定边的高连接强度,并且小 的位值可指示预定边的低连接强度。
数据序列310可包括有效位和无效位。数据序列310中的位是有效还是 无效可通过将位的值与预定阈值进行比较来确定。当数据序列310中的位具 有小于或等于阈值的值时,该位可被确定为无效。无效可指示与该位对应的 边被断开。当具有小于或等于预定阈值的值的位被确定为无效时,使用该位 的计算可被确定为是不必要的,因此可通过修剪或丢弃省略这样的计算。
编码电路220可生成压缩的数据序列320和340,其中,数据序列310 的位串中的连续无效位被压缩成单个位。
在生成压缩的数据序列320和有效性确定序列330的一个示例中,当预 定阈值是“0”时,数据序列310的位串中的具有小于或等于“0”的值的位 可被确定为无效,并且数据序列310的位串中的具有大于“0”的值的位可被 确定为有效。此外,数据序列310可包括具有小于或等于阈值“0”的值的连 续位。当存在具有小于或等于阈值“0”的值的连续位时,编码电路220可通 过用单个位值表示所述连续位来生成压缩的数据序列320。在一个示例中,单个位值可指示数据序列310中具有小于或等于阈值“0”的值的连续位的数 量。例如,当数据序列310包括具有小于或等于阈值“0”的值的三个连续位(诸如,“000”)时,数据序列310的“000”可在压缩的数据序列320中被 表示为“3”。编码电路220可如上所述将连续无效位压缩成单个位,从而提 高神经网络电路240的操作速度。此外,当数据序列310的位的值大于预定 阈值“0”时,该位可被包括在压缩的数据序列320中。因此,编码电路220 可对数据序列310“0900310002400781”进行压缩,以生成压缩的数据序列 320“192313242781”。
在生成压缩的数据序列340和有效性确定序列350的一个示例中,当预 定阈值是“3”时,数据序列310的位串中具有小于或等于“3”的值的位可 被确定为无效,并且具有大于“3”的值的位可被确定为有效。此外,数据序 列310可包括具有小于或等于阈值“3”的值的连续位。当存在具有小于或等 于阈值“3”的值的连续位时,编码电路220可通过用单个位值表示连续位来 生成压缩的数据序列340。在这个示例中,单个位值可指示数据序列310中具有小于或等于阈值“3”的值的连续位的数量。例如,当数据序列310包括 具有小于或等于阈值“3”的值的八个连续位(诸如,“00310002”)时,数据 序列310的“00310002”可在压缩的数据序列340中被表示为“8”。编码电 路220可如上所述将连续无效位压缩成单个位,从而提高神经网络电路240 的操作速度。此外,当数据序列310的位的值大于预定阈值“3”时,该位可 被包括在压缩的数据序列340中。因此,编码电路220可对数据序列310“0900310002400781”进行压缩,以生成压缩的数据序列340“19842781”。
编码电路220可生成分别指示压缩的数据序列320和340的位串中的有 效位和无效位的有效性确定序列330和350。
有效性确定序列330和350可以是由“0”和“1”表示的二进制序列。 例如,包括在有效性确定序列330和350的位串中的值“0”可指示与压缩的 数据序列320和340中的对应位的地址对应的位是无效位。此外,包括在有 效性确定序列330和350的位串中的值“1”可指示与压缩的数据序列320和 340中的对应位的地址对应的位是有效位。
解码电路230可从存储器210读取压缩的数据序列320和340以及有效 性确定序列330和350。解码电路230可基于有效性确定序列330和350来 确定压缩的数据序列320和340的位串中的将被发送到神经网络电路240的 位,使得神经网络电路240可省略关于非连续无效位的操作。
图3B示出由编码电路(例如,图2的编码电路220)生成的序列的示例。
参照图3B,示出了数据序列360、压缩的数据序列365、375和390以 及有效性确定序列370、380、385和395的示例。
数据序列360、压缩的数据序列365和有效性确定序列370和385可分 别通过用于生成图3A的数据序列310、压缩的数据序列320和340和有效性 确定序列330和350的相同操作来生成。例如,编码电路220可通过用指示 连续位的数量的单个位来表示数据序列360的具有小于或等于阈值“0”的值 的连续位,生成压缩的数据序列365。
编码电路220可通过将数据序列360的位串中的连续无效位压缩成单个 位并且还将具有相同位值的连续有效位压缩成单个位来生成压缩的数据序列 375和390。
例如,数据序列360可包括具有大于阈值“0”的相同值的连续位。当数 据序列360中存在具有大于阈值“0”的相同值的连续位时,编码电路220可 通过用单个位值表示所述连续位来生成压缩的数据序列375和390。在一个 示例中,单个位值可由数据序列360中的连续位的位值来表示。例如,当数 据序列360包括具有大于阈值“0”的值的四个连续位(诸如,“7777”)时, 数据序列360的“7777”可在压缩的数据序列375和390中被表示为“7”。 作为另一示例,当数据序列360包括具有大于阈值“0”的值的三个连续位(诸 如,“222”)时,数据序列360的“222”可在压缩的数据序列375和390中 被表示为“2”。编码电路220可如上所述将连续有效位压缩成单个位,从而 提高神经网络电路240的操作速度。因此,编码电路220可将数据序列360 “100334007777900310002220781”进行压缩,以生成压缩的数据序列375和 390“1234279231321781”。
编码电路220可生成有效性确定序列370和385,有效性确定序列370 和385分别指示压缩的数据序列365和375的位串中的有效位和无效位。此 外,编码电路220可生成指示压缩的数据序列365和375的位串中的具有相 同位值的连续有效位的数量的有效性确定序列380。
例如,包括在有效性确定序列385的位串中的值“0”可指示与压缩的数 据序列375中的对应位的地址对应的位为无效位。在这个示例中,与有效性 确定序列380中的无效位对应的位具有值“0”。
当有效性确定序列385中的位值为“1”时,可使用有效性确定序列380 来确定具有相同位值的连续有效位的数量。例如,包括在有效性确定序列380 的位串中的值“4”可指示与压缩的数据序列375中的对应位的地址对应的位 在压缩的数据序列365和在数据序列360中连续出现四次。
编码电路220可生成有效性确定序列395,有效性确定序列395指示压 缩的数据序列365和390的位串中的有效位和无效位,并且同时指示具有相 同位值的连续有效位的数量。
例如,包括在有效性确定序列395的位串中的值“0”可指示与压缩的数 据序列390中的对应位的地址对应的位为无效位。在这个示例中,与有效性 确定序列395中的无效位对应的位具有值“0”。此外,包括在有效性确定序 列395的位串中的非零值可指示与压缩的数据序列390中的对应位的地址对 应的位为有效位,并且可指示与压缩的数据序列390中的对应位的地址对应 的位连续出现与位值对应的次数。
例如,包括在有效性确定序列395的位串中的值“4”指示与压缩的数据 序列390中的对应位的地址对应的位有效,并且指示有效位在压缩的数据序 列365和在数据序列360中连续出现四次。此外,包括在有效性确定序列395 的位串中的值“0”可指示与压缩的数据序列390中的对应位的地址对应的位 无效。
图4A至图4G示出基于控制设备的输出执行神经网络中的操作的示例。
参照图4A至图4G,控制设备420可将用于神经网络(例如,全连接网 络)的操作的数据输出到神经网络电路440。例如,从控制设备420输出的 数据可以是用于神经网络的当前层的输入数据。可使用从控制设备420输出 的用于当前层的输入数据和当前层的权重序列430来执行操作。虽然图4A 至图4G示出了控制设备420输出用于当前层的输入数据的示例,但是在一 些示例中,可使用从控制设备420输出的当前层的权重序列430或可使用从控制设备420输出的当前层的权重序列430和用于当前层的输入数据来执行 操作。
神经网络电路440可使用处理元件执行矩阵之间的乘法运算。神经网络 电路440可输出使用从控制设备420输出的数据和权重序列430执行运算的 结果作为当前层的输出。
解码电路423可包括顺序地存储压缩的数据序列和有效性确定序列的缓 冲器。缓冲器可以是环形缓冲器。
解码电路423可存储第一指针(例如,图4A至图4G的“c”)、第二指 针(例如,图4A至图4G的“n”)和第三指针(例如,图4A到4G的“w”), 第一指针指示将被发送到神经网络电路的压缩的数据序列的当前位存储在缓 冲器中的位置,第二指针指示在当前位的下一循环将被发送到神经网络电路 的压缩的数据序列的下一位存储在缓冲器中的位置,第三指针指示压缩的数 据序列和有效性确定序列将被存储在缓冲器中的位置。这里,第一指针可被称为当前指针,第二指针可被称为下一指针,并且第三指针可被称为写指针。
解码电路423可基于有效性确定序列来确定压缩的数据序列的位串中的 将被发送到神经网络电路440的位,使得神经网络电路省略关于非连续无效 位的操作。
解码电路423可从存储器读取压缩的数据序列和有效性确定序列,并且 以FIFO方式将压缩的数据序列和有效性确定序列顺序地存储在缓冲器中。详 细地,解码电路423可从存储器读取压缩的数据序列和有效性确定序列中的 由读指针(例如,图4A至4G的“r”)指示的位,并且将该位写入到缓冲器 中的与第三(或写)指针对应的位置。解码电路423可将读指针和第三指针 移动一格(space)。
解码电路423可在有效性确定序列中的与第二指针对应的位值为“1”时 将第一(或当前)指针和第二(或下一)指针移动一格,并且可在有效性确 定序列中的与第二指针对应的位值为“0”时将第一指针和第二指针移动两格。
解码电路423可将压缩的数据序列和有效性确定序列中的与第一指针对 应的位值确定为等待输出的位。
参照图4A,示出了将从控制设备420输出到神经网络电路440的压缩的 数据序列“192313242781”和有效性确定序列“010110110111”的示例。压 缩的数据序列“192313242781”和有效性确定序列“010110110111”可由编 码电路421基于数据序列410生成,并且可被写入存储器。
解码电路423可将通过将“1”和有效性确定序列中的与第二指针对应的 位值相加而获得的值作为复用器的数据进行输入,并且可输入有效性确定序 列中的与第二指针对应的位值作为复用器的控制信号。
参照图4B,当在图4A的循环中有效性确定序列中的与第二指针对应的 位值是“1”时,解码电路423可将第一指针和第二指针移动一格。
在图4B中,权重序列430的当前地址计数器可指示与权重序列430的 第一位对应的地址,并且当在图4A的循环中有效性确定序列中的与第二指 针对应的位值为“1”时,解码电路423可将作为复用器的输出的“1”发送 到地址计数器。发送到地址计数器的值可指示当前操作的权重序列430的位 地址与下一操作的权重序列430的位地址之间的差。例如,当值“1”被发送 到地址计数器时,一格之后的位参与下一操作。
在图4B中,解码电路423可识别出压缩的数据序列中等待输出的位的 位值为“1”(例如,当在图4A的循环中压缩的数据序列中的与第一指针对 应的位值为“1”时)。
在图4B中,当在图4A的循环中有效性确定序列中等待输出的位的位值 为“1”时,解码电路423可将对应的压缩的数据序列发送到神经网络电路 440,并且当在图4A的循环中有效性确定序列中等待输出的位的位值为“0” 时,解码电路423可不将对应的压缩的数据序列发送到神经网络电路440。
参照图4C,当在图4B的循环中与有效性确定序列中的第二指针对应的 位值是“1”时,解码电路423可将第一指针和第二指针移动一格。
在图4C中,权重序列430的当前地址计数器可指示与权重序列430的 第二位对应的地址,并且当在图4B的循环中有效性确定序列中的与第二指针 对应的位值为“1”时,解码电路423可将“1”发送到地址计数器。
在图4C中,解码电路423可识别出压缩的数据序列中等待输出的位的 位值为“8”(例如,当在图4B的循环中压缩的数据序列中的与第一指针对应 的位值为“8”时),并且图4B中的压缩的数据序列中等待输出的位的位值“1” 和由图4B的地址计数器指示的权重序列430的第一位“1”可参与图4C的 循环中的神经网络电路440的操作。
因此,在图4C中,从解码电路423输出的压缩的数据序列的位值“1” 和从权重序列430输出的位值“1”可被输入到神经网络电路440中。神经网 络电路440可通过将压缩的数据序列的位值“1”与权重序列430的位值“1” 相乘来存储值“1”。
参照图4D,当在图4C的循环中有效性确定序列中的与第二指针对应的 位值是“0”时,解码电路423可将第一指针和第二指针移动两格。
在图4D中,权重序列430的当前地址计数器可指示与权重序列430的 第三位对应的地址,并且当在图4C的循环中有效性确定序列中的与第二指针 对应的位值为“0”时,解码电路423可将“3”(通过将“1”与图4D的压 缩的数据序列中的与第二指针对应的位值相加而获得)发送到地址计数器。
在图4D中,解码电路423可识别出压缩的数据序列中等待输出的位的 位值为“7”(例如,当在图4C的循环中压缩的数据序列中的与第一指针对应 的位值为“7”时),并且图4C中的压缩的数据序列中等待输出的位的位值“8” 和由图4C的地址计数器指示的权重序列430的第二位“3”可参与图4D的 循环中的神经网络电路440的操作。
因此,在图4D中,从解码电路423输出的压缩的数据序列的位值“8” 和从权重序列430输出的位值“3”可被输入到神经网络电路440中。神经网 络电路440可通过将“24”(通过将压缩的数据序列的位值“8”乘以权重序 列430的位值“3”而获得)与作为已经存储的来自图4C的循环的中间结果 值的“1”相加来存储值“25”(例如,可通过乘加器(MAC)来实现以上乘 法和加法运算,但不限于此)。
参照图4E,当在图4D的循环中有效性确定序列中的与第二指针对应的 位值是“1”时,解码电路423可将第一指针和第二指针移动一格。
在图4E中,权重序列430的当前地址计数器可指示与权重序列430的 第六位对应的地址,并且当在图4D的循环中有效性确定序列中的与第二指 针对应的位值为“1”时,解码电路423可将“1”发送到地址计数器。
在图4E中,解码电路423可识别出压缩的数据序列中等待输出的位的 位值为“4”(例如,当在图4D的循环中压缩的数据序列中的与第一指针对 应的位值为“4”时),并且图4D中的压缩的数据序列中等待输出的位的位 值“7”和由图4D的地址计数器指示的权重序列430的第三位“5”可参与 图4E的循环中的神经网络电路440的操作。
因此,在图4E中,从解码电路423输出的压缩的数据序列的位值“7” 和从权重序列430输出的位值“5”可被输入到神经网络电路440中。神经网 络电路440可通过将“35”(通过将压缩的数据序列的位值“7”乘以权重序 列430的位值“5”而获得)与作为已经存储的来自图4D的循环的中间结果 值的“25”相加来存储值“60”。
参照图4F,当在图4E的循环中有效性确定序列中的与第二指针对应的 位值是“0”时,解码电路423可将第一指针和第二指针移动两格。
在图4F中,权重序列430的当前地址计数器可指示与权重序列430的第 七位对应的地址,并且当在图4E的循环中有效性确定序列中的与第二指针对 应的位值为“0”时,解码电路423可将“4”(通过将“1”与图4F的压缩的 数据序列中的与第二指针对应的位值相加而获得)发送到地址计数器。
在图4F中,解码电路423可识别出压缩的数据序列中等待输出的位的位 值为“2”(例如,当在图4E的循环中压缩的数据序列中的与第一指针对应的 位值为“2”时),并且图4E中的压缩的数据序列中等待输出的位的位值“4” 和由图4E的地址计数器所指示的权重序列430的第六位“0”可参与图4F 的循环中的神经网络电路440的操作。
然而,在图4F中,当权重序列430的参与操作的位为“0”时,该位可 被确定为无效,因此,可不被发送到神经网络电路440。因此,神经网络电 路440可不执行与压缩的数据序列的乘法运算。因此,存储在神经网络电路 440中的由权重序列430的数据序列指示的位值可被保持为值“5”,并且由 权重序列430的有效性确定序列指示的位值可被设置为“0”。此外,神经网 络电路440仍然可保留作为已经存储的来自图4E的循环的中间结果值“60”。
参照图4G,当在图4F的循环中有效性确定序列中的与第二指针对应的 位值是“1”时,解码电路423可将第一指针和第二指针移动一格。
在图4G中,权重序列430的当前地址计数器可指示权重序列430的与 第十一位对应的地址,并且当在图4F的循环中有效性确定序列中的与第二指 针对应的位值为“1”时,解码电路423可将“1”发送到地址计数器。
在图4G中,解码电路423可识别出压缩的数据序列中等待输出的位的 位值为“1”(例如,当在图4F的循环中压缩的数据序列中的与第一指针对应 的位值为“1”时),并且图4F中的压缩的数据序列中等待输出的位的位值“2” 和由图4F的地址计数器指示的权重序列430的第七位“4”可参与图4G的 循环中的神经网络电路440的操作。
因此,在图4G中,从解码电路423输出的压缩的数据序列的位值“2” 和从权重序列430输出的位值“4”可被输入到神经网络电路440中。神经网 络电路440可通过将“8”(通过将压缩的数据序列的位值“2”乘以权重序列 430的位值“4”而获得)与作为已经存储的来自图4F的循环的中间结果值 的“60”相加来存储值“68”。
根据参照图4A至图4G描述的示例,无效位可不被输出到神经网络电路 440,因此,一个或多个实施例的控制设备可被配置为不仅省略关于连续无效 位的操作,而且省略关于非连续无效位的操作。
图5示出基于控制设备的输出执行神经网络中的操作的示例。
参照图5,控制设备的解码电路510可将用于训练神经网络(例如,全 连接网络)的数据输出到神经网络电路520。从控制设备的解码电路510输 出的数据可以是用于神经网络的当前层的输入数据。可通过神经网络电路520 使用从控制设备的解码电路510输出的用于当前层的输入数据和当前层的权 重数据530、540、550、560来执行操作。这样的操作可包括权重矩阵(例如, 大小为4×16)与输入矩阵(例如,大小为16×1)之间的乘法运算。神经网 络电路520(也被称为训练电路520)可使用多个处理元件来执行矩阵之间的 乘法运算。数据可在处理元件之间从左向右顺序地移动。
可通过将根据图4A至图4G的示例的基于控制设备的输出执行神经网络 电路中的操作的处理迭代地执行与权重数据的项的数量对应的次数,来执行 根据图5的示例的基于控制设备的输出执行神经网络中的操作的处理。
图6示出零选通的示例。
参照图6,有效性确定序列可用作时钟门控信号,以执行神经网络电路 的操作。控制设备的解码电路可确定与第一指针对应的当前位是否有效,并 且在当前位无效时(例如,如果有效性确定序列中的位的位值为“0”),可不 将当前位发送到神经网络电路。解码电路可在输入到神经网络电路440中的 数据有效时启动操作,从而降低神经网络电路的功耗。
如以上参照图4A至4G所述,当有效性确定序列中与第二指针对应的位 值为“0”时,解码电路可将第一指针和第二指针移动两格,因此,与第一指 针对应的当前值通常具有有效值。
然而,由于第一指针和第二指针没有超过第三指针,因此与第一指针对 应的当前位在预定情况下可能具有无效值。
例如,在示例610中,压缩的数据序列中的与第二指针(例如,“N”) 对应的位值可以是无效的,因此第一指针(例如,“C”)和第二指针可移动两 格。然而,在示例620中,当第一指针和第二指针没有超过第三指针(例如, “W”)时,第一指针和第二指针可移动一格。在图6中,“CG”可表示时钟 门控信号,“JP”可表示第一指针和第二指针移动的格的数量。
因此,在示例620中,与第一指针对应的当前位可具有无效值。在示例 630中,与第一指针对应的当前位可由时钟门控信号“1”确定为无效值,因 此解码电路将由数据序列的先前位指示的位值维持为“9”,而不将当前位发 送到神经网络电路。
示例610、620和630中的每个可包括与第一行对应的数据序列和与第二 行对应的有效性确定序列。
图7示出通过存储迭代使用的值的范围来增加重用率的示例。
参照图7,当数据序列包括多个重用数据(reused data)时,解码电路可 存储用于标识多个重用数据的第四指针。这里,第四指针也可被称为迭代指 针。
当将待重用的数据序列插入到缓冲器中时,解码电路可放置表示迭代间 隔的多个第四指针,从而促进迭代。当无效数据超过迭代范围时,解码电路 可将无效数据分割成两个段,并且将段单独地存储在缓冲器中。
解码电路可存储指示迭代的范围的第四指针,并且在重用该范围中的数 据之后迭代地对下一迭代间隔的数据进行解码,直到数据被重用至最大限度。
图8示出在脉动阵列(systolic array)中使用零选通来降低功耗的示例。
参照图8,控制设备的编码电路可根据重用的范围单独地对用于当前层 的输入数据和当前层的权重数据进行压缩。在图8中,“A”可表示数据序列 的位的位值,“B”可表示权重序列的对应位的位值。
图9示出当数据被并行存储时控制数据输入和输出的示例。
参照图9,在存储器具有大数据位宽的情况下,数据可被并行地存储。 并行存储的数据可极有可能在相同地址处包括不同数量的连续“0”,因此解 码电路可插入虚设值以将数据匹配到具有最长范围的序列。在一个示例中, 当并行地读取多个压缩的数据序列时,解码电路可针对多个压缩的数据序列 添加位,使得多个压缩的数据序列具有相同的长度。
通过这样的方式,神经网络电路可省略关于并行存储的数据的共同的非 连续无效位的操作。
图10示出控制数据输入和输出的方法的应用的示例。
控制数据输入和输出的方法可适用于顺序地读取连续数据的所有方案。
参照图10,连接到执行深度学习操作的神经网络电路以控制数据输入和 输出的控制设备的控制方法也可适用于脉动阵列1010。在图10中,PE可表 示“处理元件”。
此外,连接到执行深度学习操作的神经网络电路以控制数据输入和输出 的控制设备的控制方法也可适用于加法器树架构1020。
在此针对图1至图10描述的控制设备、存储器、编码电路、解码电路、 神经网络电路、脉动阵列、加法器树架构、地址计数器、累加器、数据控制 设备、权重控制设备、输入/权重控制设备、输出控制设备、控制设备200、 存储器210、编码电路220、解码电路230、神经网络电路240、控制设备420、 编码电路421、解码电路423、神经网络电路440、解码电路510、神经网络 电路520、脉动阵列1010、加法器树架构1020、设备、单元、模块、装置和 其他组件由硬件组件实现或代表硬件组件。可用于执行在本申请中描述的操 作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动 器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、 积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其 他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本申请中描述的操作的硬件组件中的一个或多个硬件组件。可通过一 个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号 处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑 阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果 的任何其他装置或装置的组合)来实现处理器或计算机。在一个示例中,处 理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个 或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请 中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个 或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处 理、创建和存储数据。为了简明起见,单数术语“处理器”或“计算机”可 用于本申请中描述的示例的描述,但是在其他的示例中,多个处理器或计算 机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元 件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理 器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬 件组件可通过一个或多个处理器、或者处理器和控制器来实现,一个或多个 其他硬件组件可通过一个或多个其他处理器,或者另外的处理器和另外的控 制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件 或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个 或多个,其中,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、 多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图10中示出的执行在本申请中描述的操作的方法通过计算硬件 (例如,通过一个或多个处理器或计算机)来执行,其中,计算硬件被如上 所述实现为执行指令或软件,以执行在本申请中描述的通过该方法执行的操 作。例如,单个操作或者两个或更多个操作可通过单个处理器或者两个或更 多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多 个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可通过一 个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多 个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件 并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令 或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或者计 算机作为机器或专用计算机进行操作,以执行由如上所述的硬件组件和方法 执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机 直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一个示例中, 指令或软件包括由一个或多个处理器或者计算机使用解释器执行的高级代码。 可基于附图中所示的框图和流程图以及在此使用的对应描述,使用任何编程 语言来编写指令或软件,附图中所示的框图和流程图以及此使用的对应描述 公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算器)实现硬件组件 并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数 据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中, 或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非 暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可 编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机 存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器 (SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、 CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、 BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、 固态硬盘(SSD)、卡式存储器(诸如,多媒体微型卡或卡(例如,安全数字 (SD)或极速数字(XD)卡))、磁带、软盘、磁光数据存储装置、光学数 据存储装置、硬盘、固态盘以及任何其他装置,任何其他装置被配置为以非 暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并 将所述指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个 或多个处理器或计算机,使得一个或多个处理器或计算机能执行所述指令。 在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分 布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文 件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执 行。
虽然本公开包括具体示例,但是在理解本申请的公开之后将清楚的是, 在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行 形式和细节上的各种改变。在此描述的示例将仅被认为是描述性含义的,而 不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其 他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如 果描述的系统、架构、装置或者电路中的组件以不同的方式组合和/或被其他 组件或者它们的等同物替换或者补充,则可获得适当的结果。因此,本公开 的范围不由具体实施方式限定,而是由权利要求及它们的等同物限定,并且 在权利要求及它们的等同物的范围内的所有变化将被解释为包括在本公开中。

Claims (36)

1.一种用于控制神经网络电路的数据输入和输出的控制设备,包括:
存储器;
编码电路,被配置为:
接收数据序列,
生成压缩的数据序列,在压缩的数据序列中,数据序列的位串中的连续无效位被压缩成压缩的数据序列的单个位,
生成指示压缩的数据序列的位串中的有效位和无效位的有效性确定序列,以及
将压缩的数据序列和有效性确定序列写入到存储器;以及
解码电路,被配置为:
从存储器读取压缩的数据序列和有效性确定序列,以及
基于有效性确定序列,确定压缩的数据序列的位串中的被设置为发送到神经网络电路的位,使得神经网络电路省略关于无效位的操作。
2.根据权利要求1所述的控制设备,其中,压缩的数据序列的所述单个位指示数据序列的位串中的连续无效位的数量。
3.根据权利要求1或权利要求2所述的控制设备,其中,
解码电路包括:缓冲器,被配置为顺序地存储压缩的数据序列和有效性确定序列,并且
解码电路还被配置为:存储第一指针和第二指针,第一指针指示将被发送到神经网络电路的压缩的数据序列的当前位存储在缓冲器中的位置,第二指针指示在当前位的下一循环将被发送到神经网络电路的压缩的数据序列的下一位存储在缓冲器中的位置。
4.根据权利要求3所述的控制设备,其中,为了确定被设置为发送到神经网络电路的所述位,解码电路还被配置为:
基于有效性确定序列确定与第一指针对应的当前位是否有效;
响应于当前位无效,跳过向神经网络电路发送当前位;以及
响应于当前位有效,将当前位发送到神经网络电路。
5.根据权利要求3所述的控制设备,其中,解码电路还被配置为:
基于有效性确定序列确定与第二指针对应的下一位是否有效;
响应于下一位有效,将第一指针移动到下一位存储在缓冲器中的位置;以及
响应于下一位无效,将第一指针移动到在下一位的下一循环将被发送到神经网络电路的位存储在缓冲器中的位置。
6.根据权利要求3所述的控制设备,其中,解码电路还被配置为:
基于有效性确定序列确定与第二指针对应的下一位是否有效;
响应于下一位有效,将第二指针移动到在下一位的下一循环将被发送到神经网络电路的位存储在缓冲器中的位置;以及
响应于下一位无效,将第二指针移动到在下一位的下下个循环将被发送到神经网络电路的位存储在缓冲器中的位置。
7.根据权利要求1或权利要求2所述的控制设备,其中,解码电路还被配置为:基于有效性确定序列来确定跳过神经网络电路的操作处理。
8.根据权利要求3所述的控制设备,其中,解码电路还被配置为:基于与第二指针对应的下一位来判断是否跳过神经网络电路的操作处理。
9.根据权利要求3所述的控制设备,其中,解码电路还被配置为:
基于有效性确定序列确定与第二指针对应的下一位是否有效;
响应于下一位有效,不跳过神经网络电路的操作处理;以及
响应于下一位无效,跳过神经网络电路的操作处理。
10.根据权利要求9所述的控制设备,其中,解码电路还被配置为:响应于下一位无效而将神经网络电路的操作处理跳过下一位的位值。
11.根据权利要求9所述的控制设备,其中,解码电路还被配置为:响应于下一位无效,将通过将值1与下一位的位值相加而获得的值发送到地址计数器。
12.根据权利要求3所述的控制设备,其中,解码电路还被配置为:存储第三指针,第三指针指示压缩的数据序列和有效性确定序列将被存储在缓冲器中的位置。
13.根据权利要求1或权利要求2所述的控制设备,其中,有效位是具有大于预定阈值的位值的位,无效位是具有小于或等于预定阈值的位值的位。
14.根据权利要求1或权利要求2所述的控制设备,其中,有效性确定序列中的与压缩的数据序列中的有效位的位置对应的位置处的位值是“1”,有效性确定序列中的与压缩的数据序列中的无效位的位置对应的位置处的位值是“0”。
15.根据权利要求1或权利要求2所述的控制设备,其中,解码电路还被配置为:使用有效性确定序列作为时钟门控信号来执行神经网络电路的操作。
16.根据权利要求3所述的控制设备,其中,缓冲器包括环形缓冲器。
17.根据权利要求1或权利要求2所述的控制设备,其中,编码电路还被配置为:通过将数据序列的位串中的具有相同位值的连续有效位压缩成压缩的数据序列的另一单个位来生成压缩的数据序列。
18.根据权利要求1或权利要求2所述的控制设备,其中,解码电路还被配置为:响应于数据序列包括多个重用数据,存储用于标识所述多个重用数据的第四指针。
19.根据权利要求1或权利要求2所述的控制设备,其中,解码电路还被配置为:当并行地读取多个压缩的数据序列时,针对所述多个压缩的数据序列添加位以具有相同的长度。
20.根据权利要求1或权利要求2所述的控制设备,其中,数据序列指示神经网络电路的神经网络的节点之间的边的连接强度。
21.一种包括神经网络电路和权利要求1所述的用于控制神经网络电路的数据输入和输出的控制设备的神经网络系统。
22.一种训练用于识别图像的神经网络的方法,包括:
获得训练图像数据;以及
基于训练图像数据对神经网络执行训练,
其中,在针对神经网络的当前层的训练操作之前,原始用于当前层的操作的数据序列被处理,处理后的数据序列被应用于当前层的训练操作,使得在当前层的训练操作中省略关于无效位的操作,
其中,对原始用于当前层的操作的数据序列进行处理的步骤包括:
基于原始用于当前层的操作的数据序列生成压缩的数据序列,在压缩的数据序列中,数据序列的位串中的连续无效位被压缩成压缩的数据序列的单个位;
生成用于确定压缩的数据序列的位串中的有效位和无效位的有效性确定序列;
将压缩的数据序列和有效性确定序列写入存储器;
从存储器读取压缩的数据序列和有效性确定序列;以及
基于有效性确定序列,确定压缩的数据序列的位串中的被设置为应用于训练操作的位。
23.根据权利要求22所述的方法,其中,原始用于当前层的操作的数据序列是当前层的输入数据和/或当前层的权重,
其中,神经网络的第一层的输入数据是训练图像数据,神经网络的下一层的输入数据是当前层的输出数据。
24.根据权利要求22或权利要求23所述的方法,其中,压缩的数据序列的所述单个位指示数据序列的位串中的连续无效位的数量。
25.根据权利要求22或权利要求23所述的方法,还包括:
顺序地存储压缩的数据序列和有效性确定序列;以及
存储第一指针和第二指针,第一指针指示将被应用于训练操作的压缩的数据序列的当前位存储在缓冲器中的位置,第二指针指示在当前位的下一循环将被应用于训练操作的压缩的数据序列的下一位存储在缓冲器中的位置。
26.根据权利要求25所述的方法,其中,确定的步骤包括:
基于有效性确定序列确定与第一指针对应的当前位是否有效;
响应于当前位无效,跳过将当前位应用于训练操作;以及
响应于当前位有效,将当前位应用于训练操作。
27.根据权利要求25所述的方法,还包括:
基于有效性确定序列确定与第二指针对应的下一位是否有效;
响应于下一位有效,将第一指针移动到下一位存储在缓冲器中的位置;以及
响应于下一位无效,将第一指针移动到在下一位的下一循环将被应用于训练操作的位存储在缓冲器中的位置。
28.根据权利要求25所述的方法,还包括:
基于有效性确定序列确定与第二指针对应的下一位是否有效;
响应于下一位有效,将第二指针移动到在下一位的下一循环将被应用于训练操作的位存储在缓冲器中的位置;以及
响应于下一位无效,将第二指针移动到在下一位的下下个循环将被应用于训练操作的位存储在缓冲器中的位置。
29.根据权利要求25所述的方法,还包括:
基于与第二指针对应的下一位,确定是否跳过训练操作处理。
30.根据权利要求25所述的方法,还包括:
基于有效性确定序列确定与第二指针对应的下一位是否有效;
响应于下一位有效,不跳过训练操作处理;以及
响应于下一位无效,跳过训练操作处理。
31.根据权利要求30所述的方法,其中,跳过的步骤包括:响应于下一位无效,将训练操作处理跳过下一位的位值。
32.根据权利要求25所述的方法,还包括:
存储第三指针,第三指针指示压缩的数据序列和有效性确定序列将被存储在缓冲器中的位置。
33.根据权利要求22或权利要求23所述的方法,其中,生成的步骤包括:通过将数据序列的位串中具有相同位值的连续有效位压缩成压缩的数据序列的另一单个位来生成压缩的数据序列。
34.根据权利要求22或权利要求23所述的方法,还包括:
响应于数据序列包括多个重用数据,存储用于标识所述多个重用数据的第四指针。
35.根据权利要求22或权利要求23所述的方法,还包括:
当并行读取多个压缩的数据序列时,针对所述多个压缩的数据序列添加位以具有相同长度。
36.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,配置处理器执行权利要求22所述的方法。
CN202010919746.8A 2019-12-27 2020-09-04 用于控制神经网络电路的数据输入和输出的设备 Pending CN113052303A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190176097A KR20210083624A (ko) 2019-12-27 2019-12-27 신경망의 데이터 입력 및 출력을 제어하는 제어 방법 및 장치
KR10-2019-0176097 2019-12-27

Publications (1)

Publication Number Publication Date
CN113052303A true CN113052303A (zh) 2021-06-29

Family

ID=72432721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010919746.8A Pending CN113052303A (zh) 2019-12-27 2020-09-04 用于控制神经网络电路的数据输入和输出的设备

Country Status (4)

Country Link
US (2) US11580393B2 (zh)
EP (1) EP3843012A1 (zh)
KR (1) KR20210083624A (zh)
CN (1) CN113052303A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487019A (zh) * 2021-07-06 2021-10-08 湖南第一师范学院 电路故障诊断方法、装置、计算机设备和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190099930A (ko) * 2018-02-20 2019-08-28 삼성전자주식회사 완전 연결 네트워크의 데이터 입력 및 출력을 제어하는 방법 및 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9111225B2 (en) 2012-02-08 2015-08-18 Qualcomm Incorporated Methods and apparatus for spiking neural computation
US9317751B2 (en) * 2012-04-18 2016-04-19 Vixs Systems, Inc. Video processing system with video to text description generation, search system and methods for use therewith
US9418331B2 (en) 2013-10-28 2016-08-16 Qualcomm Incorporated Methods and apparatus for tagging classes using supervised learning
US9543980B2 (en) * 2014-10-10 2017-01-10 Massachusettes Institute Of Technology Systems and methods for model-free compression and model-based decompression
US10229356B1 (en) * 2014-12-23 2019-03-12 Amazon Technologies, Inc. Error tolerant neural network model compression
US20170344876A1 (en) 2016-05-31 2017-11-30 Samsung Electronics Co., Ltd. Efficient sparse parallel winograd-based convolution scheme
US11222263B2 (en) 2016-07-28 2022-01-11 Samsung Electronics Co., Ltd. Neural network method and apparatus
US10528864B2 (en) * 2016-08-11 2020-01-07 Nvidia Corporation Sparse convolutional neural network accelerator
KR102631381B1 (ko) 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
US10726583B2 (en) 2016-12-30 2020-07-28 Intel Corporation System and method of encoding and decoding feature maps and weights for a convolutional neural network
US10929746B2 (en) 2017-11-27 2021-02-23 Samsung Electronics Co., Ltd. Low-power hardware acceleration method and system for convolution neural network computation
KR20190078292A (ko) 2017-12-26 2019-07-04 삼성전자주식회사 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법
US11783160B2 (en) * 2018-01-30 2023-10-10 Intel Corporation Memoryless weight storage hardware for neural networks
KR20190099930A (ko) 2018-02-20 2019-08-28 삼성전자주식회사 완전 연결 네트워크의 데이터 입력 및 출력을 제어하는 방법 및 장치
KR20190099927A (ko) 2018-02-20 2019-08-28 삼성전자주식회사 심층 신경망의 학습을 수행시키는 방법 및 그에 대한 장치
US10361715B1 (en) * 2018-06-04 2019-07-23 Amazon Technologies, Inc. Decompression circuit
US10817042B2 (en) 2018-09-27 2020-10-27 Intel Corporation Power savings for neural network architecture with zero activations during inference
US11080152B2 (en) * 2019-05-15 2021-08-03 Western Digital Technologies, Inc. Optimized neural network data organization
KR20190098107A (ko) 2019-08-02 2019-08-21 엘지전자 주식회사 딥 러닝을 위한 신경망 학습 장치 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487019A (zh) * 2021-07-06 2021-10-08 湖南第一师范学院 电路故障诊断方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
US11790232B2 (en) 2023-10-17
KR20210083624A (ko) 2021-07-07
US20210201133A1 (en) 2021-07-01
EP3843012A1 (en) 2021-06-30
US20230162034A1 (en) 2023-05-25
US11580393B2 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
US10740865B2 (en) Image processing apparatus and method using multi-channel feature map
CN109871529B (zh) 语言处理方法和设备
US11836610B2 (en) Concurrent training of functional subnetworks of a neural network
TW202026858A (zh) 在深度神經網路中利用啟動稀疏性
US11755904B2 (en) Method and device for controlling data input and output of fully connected network
KR102561261B1 (ko) 커널을 이용한 컨볼루션 연산 처리 방법 및 장치
US11790232B2 (en) Method and apparatus with neural network data input and output control
US11144291B1 (en) Loop-oriented neural network compilation
KR102541660B1 (ko) 음성 신호에 기반한 감정 인식 장치 및 방법
CN111192576A (zh) 解码方法、语音识别设备和系统
US20220076095A1 (en) Multi-level sparse neural networks with dynamic rerouting
CN112668381A (zh) 用于识别图像的方法和设备
CN113947703A (zh) 通过神经网络识别图像的方法和设备
EP3646232A1 (en) Techniques for dense video descriptions
CN113065632A (zh) 验证用于图像识别的神经网络的训练的方法和设备
EP3629248A1 (en) Operating method and training method of neural network and neural network thereof
CN112668689A (zh) 进行多媒体数据处理的方法和设备
US11568303B2 (en) Electronic apparatus and control method thereof
KR20190041388A (ko) 전자 장치 및 그 제어 방법
US11016775B2 (en) Neural network operation reordering for parallel execution
CN112200310A (zh) 智能处理器、数据处理方法及存储介质
CN113837350A (zh) 神经形态设备和训练用于图像识别的神经网络的方法
CN108460453B (zh) 一种用于ctc训练的数据处理方法、装置及系统
US11468306B2 (en) Storage device with artificial intelligence and storage system including the same
CN113705662A (zh) 一种协同训练方法、装置及计算机可读存储介质

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