CN110580524A - 使用灵活浮点张量的人工神经网络训练 - Google Patents

使用灵活浮点张量的人工神经网络训练 Download PDF

Info

Publication number
CN110580524A
CN110580524A CN201910360720.1A CN201910360720A CN110580524A CN 110580524 A CN110580524 A CN 110580524A CN 201910360720 A CN201910360720 A CN 201910360720A CN 110580524 A CN110580524 A CN 110580524A
Authority
CN
China
Prior art keywords
bit
bits
floating point
exponent
neural network
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
CN201910360720.1A
Other languages
English (en)
Inventor
K·奈尔
A·杨
B·莫里斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110580524A publication Critical patent/CN110580524A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/084Backpropagation, e.g. using gradient descent
    • 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/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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Abstract

本申请公开了使用灵活浮点张量的人工神经网络训练。因此,本公开涉及用于使用张量来训练神经网络的系统和方法,所述张量包括多个FP16值和定义由所述张量中所包括的所述FP16值中的一些或全部共享的指数的多个位。所述FP16值可以包括IEEE 754格式的16位浮点值,并且所述张量可以包括定义所述共享指数的多个位。所述张量可以包括共享指数和FP16值,所述FP16值包括可以由处理器电路系统动态地设置的可变位长尾数和可变位长指数。所述张量可以包括共享指数以及FP16值,所述FP16值包括:可以由处理器电路系统动态地设置的可变位长尾数、可变位长指数,以及由所述处理器电路系统设置以选择性地将所述FP16值的指数与所述共享指数进行组合的共享指数开关。

Description

使用灵活浮点张量的人工神经网络训练
技术领域
本公开涉及对神经网络的训练。
背景技术
在最简单的形式中,神经网络包括:具有多个输入的输入层、包含一个或多个输出的输出层、以及耦合至输入层和输出层的包含多个神经元的至少一个隐藏层。隐藏层中所包括的神经元中的每一个可以具有任何数量的输入和任何数量的输出。对神经元输入和/或神经元输出中的每一个进行加权以影响神经网络的决策能力。通常最初分配这些权重,并且然后基于在神经网络的训练时段期间提供的训练数据集中所包含的信息来更新这些权重。
在监督式训练中,向神经网络提供输入数据(即,输入层处的数据)和输出数据(即,输出层处的数据)两者。网络对输入数据进行处理并且将结果与输出数据进行比较。可以通过网络反向传播误差以调整控制网络的权重,从而提高网络准确性和/或速度。训练过程在多个时期中发生。每个时期包括数据的一次向前传播通过神经网络和数据的一次向后传播通过神经网络。训练可能需要多个时期以生成处于可接受的阈值内的可靠且可预测的输出。
与任务特定的算法相比,深度学习(也称为深度结构学习或分层学习)是基于学习数据表示的更广泛的机器学习方法系列的一部分。深度学习模型与如神经编码等生物神经系统中的信息处理和通信模式松散地相关,所述神经编码尝试定义各种刺激与大脑中相关联的神经响应之间的关系。深度学习是计算密集型的,因而需要大量的处理能力和资源。
IEEE数字格式包括16位浮点[FP16]和32位浮点[FP32]。针对FP16的IEEE754标准包括单符号位、10位分数和5位指数。针对FP32的IEEE 754标准包括单符号位、23位分数和8位指数。在神经网络训练中使用FP32显著增加了系统的计算负荷,特别是在与FP16进行比较时。然而,在FP16中,深度神经网络训练中的梯度可能变得过浅(即,下降到2-24以下)并且变为“0”。因此,尽管计算开销和时间成本很高,但是很多深度学习都以FP32进行。
附图说明
随着以下详细描述继续,并且当参照附图时,所要求保护的主题的各种实施例的特征和优点将变得显而易见,其中,相同的数字指代相同的部件,并且在附图中:
图1提供了根据本文所描述的至少一个实施例的说明性系统的高级框图,所述说明性系统包括神经网络、用于向神经网络提供训练张量的处理器电路系统、以及用于存储由处理器电路系统执行的指令的存储设备;
图2是根据本文所描述的至少一个实施例的包括共享共用的6位指数(5:0)的多个16位浮点数的说明性张量,并且其中,张量中的16位浮点数中的每个浮点数包括单符号位(15:15)、8位指数(14:7)和7位尾数(6:0);
图3是根据本文所描述的至少一个实施例的包括共享共用的6位指数(5:0)的多个16位浮点数的另一个说明性张量,并且其中,张量中的16位浮点数中的每个浮点数包括单符号位(15:15)、单指数开/关开关位(14:14)、8位指数(13:6)和6位尾数(5:0);
图4是根据本文所描述的至少一个实施例的说明性的电子的基于处理器的设备的示意图,所述基于处理器的设备包括处理器电路系统,所述处理器电路系统用于使用如图1、图2和图3中所描述的包括多个16位浮点值的训练张量来训练耦合至基于处理器的设备的神经网络;
图5是根据本文所描述的至少一个实施例的使用包括具有共用的共享指数的多个16位浮点值的训练张量来训练神经网络的说明性方法的高级流程图;
图6是根据本文所描述的至少一个实施例的生成具有可变位长尾数、可变位长指数和共享指数的16位浮点值的说明性方法的高级流程图;
图7是根据本文所描述的至少一个实施例的响应于检测到指示潜在上溢或下溢状况的数据而生成具有可变位长尾数、可变位长指数和共享指数的16位浮点值的说明性方法的高级流程图;并且
图8是根据本文所描述的至少一个实施例的基于在16位浮点值中所包括的共享指数开关位的逻辑状态而选择性地将16位浮点值中所包括的可变位长指数的指数部分与共享指数值进行组合的说明性方法的高级流程图。
虽然以下具体实施方式将参考说明性实施例进行,但是许多替代方案、修改及其变体将对本领域的技术人员而言是明显的。
具体实施方式
本文所描述的系统和方法提供了用于增强对使用神经网络训练张量的神经网络进行深度学习的速度和准确性的系统和方法,所述神经网络张量包括共享共用指数的16位浮点(FP16)数。一个潜在变量包括其中每个浮点数以包括可变长度分数部分和可变长度指数部分的非IEEE标准格式表示的神经网络训练张量。另一个潜在变量包括其中每个浮点数包括单开(ON)/关(OFF)位的神经网络训练张量,所述单开/关位用于:(a)将对应浮点数的指数与共享指数进行组合;或者(b)不将对应浮点指数与共享指数进行组合(即,仅使用浮点指数)。因此,本文所描述的系统和方法提供了FP16计算的优点,同时通过使用五位共享指数有益地增大了可能测试值的范围。
本文所描述的一些系统和方法生成包括由多个遵从IEEE 754的FP16格式的数中的每一个共享的6位共享指数的神经网络训练张量,所述多个数中的每一个包括:单符号位、五位指数和10位尾数。本文所描述的一些系统和方法生成包括由多个不遵从IEEE 754的FP16格式的数中的每一个共享的指数的神经网络训练张量,所述多个数中的每一个包括:单符号位、8位指数和7位尾数。本文所描述的一些系统和方法生成包括多个FP16数和由张量中所包括的全部FP16数所共享的6位共享指数的神经网络训练张量。FP16数中的每一个可以具有单符号位、单共享指数开/关开关、8位指数和6位尾数。本文所描述的一些系统和方法允许处理器电路系统调整共享指数的值以避免潜在的上溢或下溢状况。本文所描述的一些系统和方法允许处理器电路系统另外或可替代地选择性地调整张量中所包括的FP16中的一些或全部的指数和尾数的值以避免潜在的上溢或下溢状况。因此为了避免潜在的上溢或下溢状况,处理器电路系统可以在对神经网络进行训练的同时有益地并有利地调整以下各项中的一些或全部:共享指数的值、张量中一些或全部FP16数中的指数的值、和/或张量中一些或全部FP16数中的尾数的值。
提供了一种用于训练神经网络的系统。所述系统可以包括:处理器电路系统;以及耦合至所述处理器电路系统的存储设备,所述存储设备包括机器可读指令。所述机器可读指令使所述处理器电路系统进行以下操作:生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述多个16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的所述16位浮点值中的每一个所共用且共享的6位共享指数。
提供了一种神经网络训练方法。所述神经网络训练方法可以包括:由处理器电路系统生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的所述16位浮点值中的每一个所共用的6位共享指数;以及将所述训练张量中所包括的所述多个16位浮点值中的至少一个提供为所述神经网络的输入。
提供了一种神经网络训练系统。所述训练系统可以包括:用于由处理器电路系统生成神经网络训练张量的装置,所述神经网络训练张量包括:多个16位浮点值,所述16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的所述16位浮点值中的每一个所共用的6位共享指数;以及用于将所述训练张量中所包括的所述多个16位浮点值中的至少一个提供为所述神经网络的输入的装置。
提供了一种非暂态机器可读存储介质。所述非暂态机器可读存储介质包括机器可读指令,所述指令在由处理器电路系统执行时使所述处理器电路系统进行以下操作:生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述多个16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的所述16位浮点值中的每一个所共用的6位共享指数。
提供了一种用于训练神经网络的基于处理器的设备。所述基于处理器的设备可以包括:印刷电路板;处理器电路系统,耦合到所述印刷电路板;输入/输出接口,可耦合到神经网络;以及存储设备,耦合至所述处理器电路系统,所述存储设备包括机器可读指令,所述指令在由所述处理器电路系统执行时使所述处理器电路系统进行以下操作:生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述多个16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的所述16位浮点值中的每一个所共用的6位共享指数。
图1提供了根据本文所描述的至少一个实施例的说明性系统100的高级框图,所述说明性系统包括神经网络110、用于向神经网络110提供训练张量150的处理器电路系统130、以及用于存储由处理器电路系统130执行的指令的存储设备170。所述训练张量150包括:多个16位浮点值1521至152n(统称“16位浮点值152”)、以及由至少一些16位浮点值152中的每一个所共用且共享的指数154。在实施例中,处理器电路系统130生成用于对神经网络110进行训练(例如,设置其权重和/或偏置)的训练张量150或引起所述训练张量的生成。在实施例中,执行存储在存储设备170中、上或周围的指令可以使处理器电路系统130将训练张量150向前传播和/或向后传播通过神经网络110。
神经网络110包括由包括多个神经元1161至116n(统称为“神经元116”)的隐藏层116耦合的多个输入1121至112n(统称为“输入112”)和多个输出1141至114n(统称为“输出114”)。虽然隐藏层116仅包括单个神经元层,但是相关领域的普通技术人员将很容易理解的是,隐藏层116可以包括任何数量的层。在实施例中,神经网络110可以包括能够进行深度学习的神经网络——深度神经网络。
处理器电路系统130可以包括任何数量的能够向神经网络110提供训练张量150中所包括的16位浮点值152和6位共享指数154的当前可用和/或未来开发的电气部件、半导体器件和/或逻辑元件,和/或这些电气部件、半导体器件和/或逻辑元件的组合。在一些实施方式中,处理器电路系统130可以基于与神经网络110和/或训练张量150相关联的一个或多个参数来动态地调整指数154。例如,处理器电路系统130可以响应于检测到训练张量150中所包括的一个或多个16位浮点值152的潜在上溢而执行使共享指数154增大的指令。在另一个示例中,处理器电路系统130可以响应于检测到训练张量150中所包括的一个或多个16位浮点值152的潜在下溢而执行使共享指数154减小的指令。
在实施例中,处理器电路系统130可以包括用于计算或以其他方式确定训练张量150中所包括的一个或多个16位浮点值152的增大速率或减小速率以识别展示出指示潜在下溢或上溢状况的行为的那些16位浮点值152的电路系统。在其他实施例中,处理器电路系统130可以包括用于计算或以其他方式确定训练张量150中所包括的一个或多个16位浮点值152的增量增大或减小以识别展示出指示潜在下溢或上溢状况的行为的那些16位浮点值152的电路系统。
在实施例中,处理器电路系统130可以使训练张量150中所包括的16位浮点值152中的一些或全部向前传播通过神经网络110。在实施例中,处理器电路系统130可以使训练张量150中所包括的16位浮点值152中的一些或全部向后或反向传播通过神经网络110。在实施例中,处理器电路系统130可以包括被配置用于生成训练张量150中所包括的16位浮点值152和/或向神经网络110提供训练张量150中所包括的16位浮点值152的一个或多个通用系统和/或设备。在实施例中,处理器电路系统130可以从比如联网源等一个或多个外部源接收训练张量150中所包括的16位浮点值152的至少一部分。
训练张量150包括多个16位浮点值152。训练张量150还包括可以由16位浮点值152的至少一部分中的每一个共享的共享指数154。共享指数154可以包括用于提供有符号的共享指数154的符号位。共享指数154可以包括3位值;4位值;5位值;6位值;7位值;或8位值。例如,使用IEEE 754标准16位浮点格式,训练张量150中所包括的每个16位浮点值152将包括:单符号位;10位尾数;以及包括16位浮点值152中所包括的5位指数加上5位共享指数154的和的尾数。在实施例中,训练张量150包括多个遵从IEEE 754的半精度(16位浮点)值152。在实施例中,训练张量150包括多个不遵从IEEE754的半精度(16位浮点)值152。
存储设备170可以包括任何数量的当前可用和/或未来开发的数据存储系统和/或设备,和/或所述数据存储系统和/或设备的组合。在实施例中,存储设备170可以存储可由处理器电路系统130执行的机器可读指令集。在实施例中,存储设备170可以将形成训练张量150的16位浮点值152的至少一些保持、存储或以其他方式保留在一个或多个数据存储设备、数据结构、和/或数据库中。
图2是根据本文所描述的至少一个实施例的包括多个16位浮点(FP16)数1521至152n的说明性张量200,其中每一个浮点数共享共用的6位指数(5:0)154,并且其中,FP16数中的每一个包括:对应单符号位(15:15)2041至204n;对应8位指数(14:7)2061至206n;以及对应7位尾数(6:0)2081至208n。动态地更改以下各项中的至少一项的能力有益地允许处理器电路系统130主动地调整张量200中的一个或多个FP16值以避免神经网络训练过程期间的潜在上溢或下溢状况:训练张量200中所包括的共享指数154的值、一个或多个FP16数的尾数值、以及一个或多个FP16数的指数值。使用图2所描绘的格式,每个16位浮点值152可以被表示为:
其中,指数偏置由下式给出:
(2)(E-M)-1 (2)
图3是根据本文所描述的至少一个实施例的包括共享共用的6位指数(5:0)154的多个16位浮点(FP16)数1521至152n的说明性张量300,并且其中,FP16数中的每一个包括:对应单符号位(15:15)2041至204n;对应共享指数开/关开关位(14:14)3021至302n;对应8位指数(14:7)2061至206n;以及对应6位尾数(5:0)2081至208n。动态地更改以下各项中的至少一项的能力有益地允许处理器电路系统130主动地调整张量300中的一个或多个FP16值以避免神经网络训练过程期间的潜在上溢或下溢状况:训练张量200中所包括的共享指数154的值、一个或多个FP16数的尾数值、以及一个或多个FP16数的指数值。另外,处理器电路系统130可以选择性地指定训练张量300中所包括的FP16数152中的每一个的指数206是否应该与共享指数组合——从而进一步提高训练张量300的灵活性。使用图3中所描绘的格式,共享指数开关304在“开”逻辑状态时,16位浮点值152可以表示为:
其中,指数偏置由下式给出:
(2)(E-M)-1 (4)
使用图3中所描绘的格式,共享指数开关304在“关”逻辑状态时,16位浮点值152可以表示为:
其中,指数偏置由下式给出:
(2)(E-M)-1 (6)
图4是本文所描述的至少一个实施例的说明性的电子的基于处理器的设备400的示意图,所述基于处理器的设备包括处理器电路系统130,所述处理器电路系统用于使用如图1、图2和图3中所描述的包括多个16位浮点值152的训练张量150来训练耦合至基于处理器的设备400的神经网络110。基于处理器的设备400可以另外包括以下各项中的一项或多项:图形处理单元412、无线输入/输出(I/O)接口420、有线I/O接口430、存储器电路系统440、电源管理电路系统450、非暂态存储设备170和网络接口470。以下讨论提供了对形成说明性的基于处理器的设备400的部件的简要、概括的描述。示例非限制性基于处理器的设备400可以包括但不限于:智能手机、可穿戴计算机、便携式计算设备、手持式计算设备、台式计算设备、刀片服务器设备、工作站等。
基于处理器的设备400包括能够创建或以其他方式生成用于训练神经网络110的张量150中所包括的16位浮点值152的处理器电路系统130。在实施例中,基于处理器的设备400可以另外包括图形处理器电路系统412。在实施例中,基于处理器的设备400包括能够执行一个或多个机器可读指令集414、从一个或多个存储设备170读取数据和/或指令集414并且向所述一个或多个存储设备170写入数据的处理器电路系统130。处理器电路系统130可以使训练张量150中所包括的16位浮点值152中的一些或全部向前传播通过神经网络110。处理器电路系统130可以使训练张量150中所包括的16位浮点值152中的一些或全部反向传播通过神经网络110。在实施例中,处理器电路系统130可以包括用于预测和/或检测指示训练张量150中所包括的16位浮点值152中的一个或多个浮点值中的潜在上溢或下溢状况的信息和/或数据的预测和/或检测电路系统。
在一些实施例中,基于处理器的设备400包括能够执行机器可读指令集414并且生成能够向系统用户提供显示输出的输出信号的图形处理器电路系统412。相关领域的技术人员将理解的是,所展示的实施例以及其他实施例可以利用其他基于处理器的设备配置来实践,所述配置包括便携式电子或手持式电子设备,例如,智能手机、便携式计算机、可穿戴计算机、消费电子设备、个人计算机(“PC”)、网络PC、小型计算机、刀片服务器、大型计算机等。处理器电路系统130可以包括任何数量的硬连线或可配置电路,所述电路中的一些或全部可以包括被部分或全部地布置在PC、服务器或能够执行处理器可读指令的其他计算系统中的电子部件、半导体器件和/或逻辑元件的可编程和/或可配置组合。
基于处理器的设备400包括可通信地耦合并促进在各个系统部件之间的信息和/或数据的交换的总线或类似通信链路416,所述各个系统部件包括处理器电路系统130、图形处理器电路系统412、一个或多个无线I/O接口420、一个或多个有线I/O接口430、一个或多个存储设备170、和/或一个或多个网络接口470。在本文中可以以单数形式指代基于处理器的设备400,但是这不旨在将实施例限制为单个基于处理器的设备400,因为在某些实施例中,可能存在并入、包括或包含任何数量的可通信地耦合、并置或远程联网的电路或设备的多于一个基于处理器的设备400。
处理器电路系统130可以包括能够执行机器可读指令集的任何数量、类型的当前可用或未来开发的设备,或所述设备的组合。处理器电路系统130可以包括但不限于任何当前或未来开发的单核或多核处理器或微处理器,比如:一个或多个芯片上系统(SOC);中央处理单元(CPU);数字信号处理器(DSP);图形处理单元(GPU);应用专用集成电路(ASIC)、可编程逻辑单元、现场可编程门阵列(FPGA)等。除非另外说明,图4中示出的各个框的构造和操作都是常规设计。因此,本文不必进一步详述这些框,因为其将被相关领域的技术人员所理解。使基于处理器的设备400的部件的至少一些互连的总线416可以采用任何当前可用或未来开发的串联或并联总线结构或架构。
系统存储器440可以包括只读存储器(“ROM”)442和随机存取存储器(“RAM”)446。ROM 442的一部分可以用于存储或以其他方式保留基本输入/输出系统(“BIOS”)444。BIOS444例如通过使处理器电路系统130加载和/或执行一个或多个机器可读指令集414来向基于处理器的设备400提供基本功能。在实施例中,一个或多个机器可读指令集414中的至少一些使处理器电路系统130中的至少一部分提供、创建、产生、转变和/或充当专用、特定和具体的机器,例如文字处理机、数字图像获取机器、媒体播放机器、游戏系统、通信设备、智能手机等。
基于处理器的设备400可以包括至少一个无线输入/输出(I/O)接口420。所述至少一个无线I/O接口420可以可通信地耦合至一个或多个物理输出设备422(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。所述至少一个无线I/O接口420可以可通信地耦合至一个或多个物理输入设备424(定点设备、触摸屏、键盘、触觉设备等)。所述至少一个无线I/O接口420可以包括任何当前可用或未来开发的无线I/O接口。示例无线I/O接口包括但不限于:近场通信(NFC)等。
基于处理器的设备400可以包括一个或多个有线输入/输出(I/O)接口430。所述至少一个有线I/O接口430可以可通信地耦合至一个或多个物理输出设备422(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。所述至少一个有线I/O接口430可以可通信地耦合至一个或多个物理输入设备424(定点设备、触摸屏、键盘、触觉设备等)。有线I/O接口430可以包括任何当前可用或未来开发的I/O接口。示例有线I/O接口包括但不限于:通用串行总线(USB)、IEEE 1394(“火线”)等。
基于处理器的设备400可以包括一个或多个可通信地耦合的非暂态数据存储设备170。数据存储设备170可以包括一个或多个硬盘驱动器(HDD)和/或一个或多个固态存储设备(SSD)。所述一个或多个数据存储设备170可以包括任何当前或未来开发的存储装置、网络存储设备和/或系统。这类数据存储设备170的非限制性示例可以包括但不限于任何当前或未来开发的非暂态存储装置或设备,比如,一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备、或其各种组合。在一些实施方式中,所述一个或多个数据存储设备170可以包括一个或多个可移除存储设备,比如,一个或多个闪存驱动器、闪存、闪存单元或能够可通信地耦合至基于处理器的设备400并从其解除耦合的类似装置或设备。
所述一个或多个数据存储设备170可以包括可通信地将对应存储设备或系统耦合至总线416的接口或控制器(未示出)。所述一个或多个数据存储设备170可以存储、保留或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构、和/或对处理器电路系统130和/或图形处理器电路系统412有利的其他数据、和/或在处理器电路系统130和/或图形处理器电路系统412上或由其执行的一个或多个应用。在一些实例中,一个或多个数据存储设备170可以例如经由以下方式可通信地耦合至处理器电路系统130:总线416或一个或多个有线通信接口430(例如,通用串行总线或USB);一个或多个无线通信接口420(例如,近场通信或NFC);和/或一个或多个网络接口470(IEEE 802.3或以太网、IEEE 802.11、或等)。
处理器可读指令集414和其他程序、应用、逻辑集、和/或模块可以整体或部分地存储在系统存储器440中。这种指令集414可以整体或部分地从一个或多个数据存储设备170进行传送。在由处理器电路系统130和/或图形处理器电路系统412执行期间,指令集414可以整体或部分地被加载、存储或以其他方式保留在系统存储器440中。处理器可读指令集414可以包括能够使处理器电路系统130动态地调整以下各项中的一项或多项的机器可读和/或处理器可读代码、指令或类似逻辑:训练张量150中所包括的共享指数154的值、一个或多个FP16数208的尾数值、和一个或多个FP16数206的指数值。处理器可读指令集414可以包括能够使处理器电路系统130选择性地并且独立地将每个FP16数1521至152n的共享指数开/关开关3021至302n设置为第一逻辑状态(“开”)的机器可读和/或处理器可读代码、指令或类似逻辑,在所述第一逻辑状态中,共享指数154选择性地与对应FP16数1521至152n的指数2061至206n相组合。处理器可读指令集414可以包括能够使处理器电路系统130选择性地并且独立地将每个FP16数1521至152n的共享指数开/关开关3021至302n设置为第二逻辑状态(“关”)的机器可读和/或处理器可读代码、指令或类似逻辑,在所述第二逻辑状态中,共享指数154不与对应FP16数1521至152n的指数2061至206n相组合。
基于处理器的设备400可以包括控制能量存储设备452的一个或多个操作性方面的电源管理电路系统450。在实施例中,能量存储设备452可以包括一个或多个一次(即,不可再充电)电池或二次(即,可再充电)电池或类似能量存储设备。在实施例中,能量存储设备452可以包括一个或多个双电层电容器(supercapacitor)或超级电容器。在实施例中,电源管理电路系统450可以更改、调整或控制能量从外部电源454流动到能量存储设备452和/或到基于处理器的设备400。电源454可以包括但不限于太阳能系统、商用电网、便携式发电机、外部能量存储设备、或其任何组合。
为了方便,处理器电路系统130、图形处理器电路系统412、无线I/O接口420、有线I/O接口430、电源管理电路系统450、存储设备460和网络接口470被展示为经由总线416通信地彼此耦合,从而提供上述部件之间的连接。在替代性实施例中,上述部件可以以与图4中所示的不同的方式通信地耦合。例如,上述部件中的一个或多个可以直接耦合至其他部件,或者可以经由一个或多个中间部件(未示出)彼此耦合。在另一个示例中,上述部件中的一个或多个可以被集成到处理器电路系统130和/或图形处理器电路系统412中。在一些实施例中,可以省略总线416中的全部或一部分,并且部件使用适当的有线或无线连接直接彼此耦合。
图5是根据本文所描述的至少一个实施例的使用包括具有共用共享指数154的多个16位浮点值152的训练张量150来训练神经网络110的说明性方法500的高级流程图。共享指数154有益地增大了训练张量150中的可能值的范围,从而降低了训练张量150中出现上溢或下溢状况的可能性。方法500开始于502处。
在504处,处理器电路系统130生成包括多个16位浮点值152的训练张量150。可以将16位浮点值152中的至少一部分中的每一个的指数与同训练张量150相关联的共享指数154进行组合,以提供具有超过遵从IEEE 754的16位浮点值的扩展范围的16位浮点值152。
在506处,处理器电路系统130向神经网络110提供训练张量150中的至少一部分。在实施例中,处理器电路系统130使16位浮点值152向前传播到神经网络110。在实施例中,神经网络接收来自神经网络110的输出并使所接收的16位浮点值152的至少一部分反向传播通过神经网络。方法500结束于508处。
图6是根据本文所描述的至少一个实施例的响应于检测到指示潜在上溢或下溢状况的数据而选择性地调整共享指数154、一个或多个FP16尾数值2081至208n、以及一个或多个FP16指数值2061至206n中的一个或多个的值的说明性方法600的高级流程图。方法600开始于602处。
在604处,处理器电路系统130检测指示训练张量150中所包括的16位浮点值152中的一个或多个浮点值中的潜在上溢或下溢状况的数据。在实施例中,处理器电路系统130可以包括能够在未来训练时期期间预测16位浮点值152的预测电路系统和/或比较器电路系统。
在606处,响应于确定16位浮点值152中的一个或多个将在未来训练时期期间上溢或下溢,处理器电路系统130动态地更改共享指数154、一个或多个FP16尾数值2081至208n、和一个或多个FP16指数值2061至206n中的一个或多个的值以最小化或消除出现上溢或下溢状况的可能性。方法600结束于608处。
图7是根据本文所描述的至少一个实施例的基于训练张量300中所包括的FP16数1521至152n中的每一个中所包括的共享指数开关3021至302n位的逻辑状态来选择性地将16位浮点值152中所包括的可变位长指数的指数部分与共享指数值进行组合的说明性方法700的高级流程图。在实施例中,16位浮点值1521至152n中的每一个可以包括对应符号位2041至204n、对应共享指数开/关开关位3021至302n、对应6位尾数2081至208n、以及对应8位指数2081至208n。方法700有益地允许训练张量150中所包括的FP16数1521至152n中的每一个使用多个不同的指数值。方法700开始于702处。
在704处,处理器电路系统130选择性地并且独立地为训练张量150中所包括的FP16数1521至152n中的每一个设置共享指数开关位3021至302n。在实施例中,处理器电路系统130可以基于确定训练张量150中所包括的FP16数1521至152n的指数值2061至206n不足以防止对应FP16数1521至152n的未来上溢或下溢而选择性地设置共享指数开关位304。通过将16位浮点值152中所包括的指数位与同训练张量150相关联的共享指数进行组合,处理器电路系统130最小化或消除了出现上溢或下溢状况的可能性。方法700结束于706处。
图8是根据本文所描述的至少一个实施例的响应于检测到指示潜在上溢或下溢状况的数据而选择性地调整共享指数154、一个或多个FP16尾数值2081至208n、和一个或多个FP16指数值2061至206n中的一个或多个的值、和/或选择性地控制是否将每个FP16数1521至152n的各个指数值2061至206n与共享指数154进行组合的说明性方法800的高级流程图。方法800开始于802处。
在804处,处理器电路系统130检测指示训练张量150中所包括的16位浮点值1521至152n中的一个或多个浮点值中的潜在上溢或下溢状况的数据。在实施例中,处理器电路系统130可以包括能够在未来训练时期期间预测16位浮点值152的预测电路系统和/或比较器电路系统。
在806处,响应于确定16位浮点值152中的一个或多个将在未来训练时期期间上溢或下溢,处理器电路系统130动态地更改共享指数154、一个或多个FP16尾数值2081至208n、一个或多个FP16指数值2061至206n中的一个或多个的值、和/或将共享指数开/关开关3021至302n设置为期望的逻辑状态以最小化或消除出现上溢或下溢状况的可能性。方法800结束于808处。
虽然图5至图8展示了根据一个或多个实施例的各种操作,但是将理解的是,对于其他实施例来说,并非图5至图8中所描绘的所有操作都是必需的。实际上,本文中完全设想的是,在本公开的其他实施例中,可以采用任何附图中未具体地示出、但仍然与本公开完全一致的方式将图5至图8中所描绘的操作和/或本文中所描述的其他操作进行组合。因此,涉及未在一个附图中准确示出的特征和/或操作的权利要求被视为处于本公开的范围和内容之内。
如在本申请和权利要求书中所使用的,由术语“和/或”所连接的一系列项目可以意指所列项目的任何组合。例如,短语“A、B和/或C”可意指A;B;C;A和B;A和C;B和C;或A、B和C。如在本申请和权利要求书中所使用的,由术语“中的至少一项”接合的一系列项目可意指所列术语的任何组合。例如,短语“A、B或C中的至少一项”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
如本文中任何实施例所使用的,术语“系统”或“模块”可以指例如被配置用于执行前述操作中任何操作的软件、固件和/或电路系统。软件可以被具体化为非暂态计算机可读存储介质上所记录的软件包、代码、指令、指令集和/或数据。固件可以被具体化为存储器设备中硬编码(例如,非易失性的)的代码、指令或指令集和/或数据。如本文中任何实施例中所使用的,“电路系统”可以例如单一地或以任何组合的形式包括硬连线电路系统、可编程电路系统(比如,包括一个或多个独立指令处理核的计算机处理器)、状态机电路系统、和/或存储有可由可编程电路系统或未来计算范例(包括例如大规模并行、模拟或量子计算、比如神经网处理器等加速器的硬件实施例、以及上述的非硅实施方式)执行的指令的固件。所述电路系统可以被统一地或单独地具体化为形成例如集成电路(IC)、芯片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能手机等的更大系统的一部分的电路系统。
本文中所描述的任何操作可以在系统中实施,所述系统包括具有单独地或组合地存储在其中的指令的一个或多个介质(比如,非暂态存储介质),当所述指令由一个或多个处理器执行时执行所述方法。此处,处理器可以包括例如服务器CPU、移动设备CPU、和/或其他可编程电路系统。而且,旨在使得本文中所描述的操作可以跨诸如多于一个不同物理位置处的处理结构等多个物理设备分布。存储介质可以包括任何类型的有形介质,例如包括以下各项的任何类型的磁盘:硬盘、软盘、光盘、致密盘-只读存储器(CD-ROM)、可复写致密盘(CD-RW)、和磁光盘、如只读存储器(ROM)等半导体器件、如动态和静态RAM等随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、固态盘(SSD)、嵌入式多媒体卡(eMMC)、安全数字输入/输出(SDIO)卡、磁卡或光卡、或者适合于存储电子指令的任何类型的介质。其他实施例可以实施为由可编程控制设备执行的软件。
因此,本公开涉及用于使用张量来训练神经网络的系统和方法,所述张量包括多个16位浮点值和定义由所述张量中所包括的所述16位浮点值中的一些或全部共享的指数的多个位。16位浮点值可以包括IEEE 754格式的16位浮点值,并且张量可以包括定义共享指数的多个位。张量可以包括共享指数和16位浮点值,所述浮点值包括可以由处理器电路系统动态地设置的可变位长尾数和可变位长指数。张量可以包括共享指数和16位浮点值,所述浮点值包括:可以由处理器电路系统动态地设置的可变位长尾数、可变位长指数,以及由处理器电路系统设置以选择性地将16位浮点值的指数与共享指数进行组合的共享指数开关。
以下示例涉及进一步实施例。如以下所提供的,本公开的以下示例可以包括主题材料,比如至少一种设备、一种方法、至少一种用于存储指令(当被执行时使机器基于所述方法执行动作)的机器可读介质、用于基于所述方法执行动作的装置、和/或一种用于在半导体封装衬底中形成磁性排列通孔的系统。
根据示例1,提供了一种用于训练神经网络的系统。所述系统可以包括:处理器电路系统;以及耦合至所述处理器电路系统的存储设备,所述存储设备包括机器可读指令。所述机器可读指令使所述处理器电路系统进行以下操作:生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述多个16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的16位浮点值中的每一个所共用的五位共享指数。
示例2可以包括如示例1所述的元素,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:由所述第一多个位提供的十位尾数;由所述第二多个位提供的五位指数;以及一位符号。
示例3可以包括如示例1或2中任一项所述的元素,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都可以包括:由所述第一多个位提供的可变位长尾数;由所述第二多个位提供的可变位长指数;以及一位符号;其中,所述指令进一步使所述处理器电路系统基于一个或多个神经网络参数来选择:用于表示所述可变位长尾数的位的数量;以及用于表示所述可变位长指数的位的数量。
示例4可以包括如示例1至3中任一项所述的元素,其中,所述一个或多个神经网络参数可以包括表示指示以下各项中的至少一项的趋势的数据:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
示例5可以包括如示例1至4中任一项所述的元素,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都可以包括:由所述第一多个位提供的尾数;由所述第二多个位提供的指数;一位符号;以及用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
根据示例6,提供了一种神经网络训练方法。所述神经网络训练方法可以包括:由处理器电路系统生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的16位浮点值中的每一个所共用的五位共享指数;以及将所述训练张量中所包括的所述多个16位浮点值中的至少一个提供为所述神经网络的输入。
示例7可以包括如示例6所述的元素,其中,生成所述神经网络训练张量可以包括:生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量,其中,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的十位尾数;由所述第二多个位提供的五位指数;以及一位符号。
示例8可以包括如示例6或7中任一项所述的元素,其中,生成所述神经网络训练张量可以包括:生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量,其中,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的可变位长尾数;由所述第二多个位提供的可变位长指数;以及一位符号。
示例9可以包括如示例6至8中任一项所述的元素,并且所述方法可以另外包括:由所述处理器电路系统基于一个或多个神经网络参数来选择:用于表示所述可变位长尾数的位的第一数量;以及用于表示所述可变位长指数的位的第二数量。
示例10可以包括如示例6至9中任一项所述的元素,并且所述方法可以另外包括:由所述处理器电路系统检测所述训练张量中所包括的所述多个16位浮点值中的一个或多个浮点值的趋势,所检测的趋势指示以下各项中的至少一项:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
示例11可以包括如示例6至10中任一项所述的元素,其中,选择用于表示所述可变位长尾数的位的第一数量和用于表示所述可变位长指数的位的第二数量可以包括:由所述处理器电路系统响应于检测到指示以下各项中的至少一项的趋势而选择包括在所述第一多个位中的位的第一数量以及包括在所述第二多个位中的位的第二数量:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
示例12可以包括如示例6至11中任一项所述的元素,其中,生成所述神经网络训练张量可以包括:生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量,其中,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的尾数;由所述第二多个位提供的指数;一位符号;以及用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
根据示例13,提供了一种神经网络训练系统。所述训练系统可以包括:用于由处理器电路系统生成神经网络训练张量的装置,所述神经网络训练张量包括:多个16位浮点值,所述16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的16位浮点值中的每一个所共用的五位共享指数;以及用于将所述训练张量中所包括的所述多个16位浮点值中的至少一个提供为所述神经网络的输入的装置。
示例14可以包括如示例13所述的元素,其中,所述用于生成所述神经网络训练张量的装置可以包括:用于生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量的装置,其中,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的十位尾数;由所述第二多个位提供的五位指数;以及一位符号。
示例15可以包括如示例13或14中任一项所述的元素,其中,所述用于生成所述神经网络训练张量的装置可以进一步包括:用于生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量的装置,其中,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的可变位长尾数;由所述第二多个位提供的可变位长指数;以及一位符号。
示例16可以包括如示例13至15中任一项所述的元素,并且所述系统可以进一步包括:用于选择以下各项的装置:用于表示所述可变位长尾数的位的第一数量;以及用于表示所述可变位长指数的位的第二数量。
示例17可以包括如示例13至16中任一项所述的元素,并且所述系统可以进一步包括:用于检测所述训练张量中所包括的所述多个16位浮点值中的一个或多个浮点值的趋势的装置,所检测的趋势指示以下各项中的至少一项:所述神经网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值的潜在下溢状况或潜在上溢状况。
示例18可以包括如示例13至17中任一项所述的元素,其中,所述用于选择用于表示所述可变位长尾数的位的第一数量和用于表示所述可变位长指数的位的第二数量的装置可以进一步包括:用于响应于检测到指示以下各项中的至少一项的趋势而选择包括在所述第一多个位中的位的第一数量以及包括在所述第二多个位中的位的第二数量的装置:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
示例19可以包括如示例13至18中任一项所述的元素,其中,所述用于生成所述神经网络训练张量的装置可以进一步包括:用于生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量的装置,其中,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的尾数;由所述第二多个位提供的指数;一位符号;以及用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
根据示例20,提供了一种非暂态计算机可读存储介质,包括机器可读指令,所述指令在由处理器电路系统执行时使所述处理器电路系统进行以下操作:生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述多个16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的16位浮点值中的每一个所共用的五位共享指数。
示例21可以包括如示例20所述的元素,其中,使所述处理器电路系统生成包括多个16位浮点值的神经网络训练张量的所述机器可读指令进一步使得所述处理器电路系统进行以下操作:
生成包括多个16位浮点值的神经网络训练张量,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的十位尾数;由所述第二多个位提供的五位指数;以及一位符号。
示例22可以包括如示例20或21中任一项所述的元素,其中,使所述处理器电路系统生成包括多个16位浮点值的神经网络训练张量的所述机器可读指令进一步使得所述处理器电路系统进行以下操作:生成包括多个16位浮点值的神经网络训练张量,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的可变位长尾数;由所述第二多个位提供的可变位长指数;以及一位符号;并且基于一个或多个神经网络参数来选择:
用于表示所述可变位长尾数的位的数量;以及用于表示所述可变位长指数的位的数量。
示例23可以包括如示例20或22中任一项所述的元素,其中,使所述处理器电路系统基于一个或多个神经网络参数来选择用于表示所述可变位长尾数和所述可变位长指数的位的数量的所述机器可读指令进一步使所述处理器电路系统进行以下操作:基于以下各项中的一项或多项来选择用于表示所述可变位长尾数和所述可变位长指数的位的数量:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
示例24可以包括如示例20或23中任一项所述的元素,其中,使所述处理器电路系统生成包括多个16位浮点值的神经网络训练张量的所述机器可读指令进一步使得所述处理器电路系统进行以下操作:生成包括多个16位浮点值的神经网络训练张量,所述多个16位浮点值中的每一个包括:由所述第一多个位提供的尾数;由所述第二多个位提供的指数;一位符号;以及用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
根据示例25,提供了一种基于处理器的设备。所述基于处理器的设备可以包括:印刷电路板;处理器电路系统,耦合到所述印刷电路板;输入/输出接口,可耦合到神经网络;以及存储设备,耦合至所述处理器电路系统,所述存储设备包括机器可读指令,所述指令在由所述处理器电路系统执行时使所述处理器电路系统进行以下操作:生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述多个16位浮点值中的每一个包括:形成对应浮点数的尾数的第一多个位;和形成所述对应浮点数的指数的第二多个位;以及由所述训练张量中所包括的16位浮点值中的每一个所共用的五位共享指数。
示例26可以包括如示例25所述的元素,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:由所述第一多个位提供的十位尾数;由所述第二多个位提供的五位指数;以及一位符号。
示例27可以包括如示例25或26中任一项所述的元素,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都可以包括:由所述第一多个位提供的可变位长尾数;由所述第二多个位提供的可变位长指数;以及一位符号;其中,所述指令进一步使所述处理器电路系统基于一个或多个神经网络参数来选择:用于表示所述可变位长尾数的位的数量;以及用于表示所述可变位长指数的位的数量。
示例28可以包括如示例25至27中任一项所述的元素,其中,所述一个或多个神经网络参数包括指示以下各项中的至少一项的趋势:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
示例29可以包括如示例25至28中任一项所述的元素,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:
由所述第一多个位提供的尾数;由所述第二多个位提供的指数;一位符号;以及用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
根据示例30,提供了一种张量数据结构。所述张量数据结构可以包括:多个16位浮点寄存器,所述多个16位浮点寄存器中的每一个包括:与尾数值相对应的第一多个位;与指数值相对应的第二多个位;和符号位;以及共享指数寄存器,所述共享指数寄存器与所述多个16位浮点寄存器中的每个对应浮点寄存器相关联。
示例31可以包括如示例30所述的元素,其中,所述多个16位浮点寄存器中的每一个都包括:由所述第一多个位提供的十位尾数;由所述第二多个位提供的五位指数;以及一位符号。
示例32可以包括如示例30或31中任一项所述的元素,其中,所述多个16位浮点寄存器中的每一个都包括:由所述第一多个位提供的可变位长尾数;由所述第二多个位提供的可变位长指数;以及
一位符号。
示例33可以包括如示例30至32中任一项所述的元素,其中,所述多个16位浮点寄存器中的每一个都包括:由所述第一多个位提供的尾数;由所述第二多个位提供的指数;一位符号;以及用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
本文已采用的术语和表达用作对术语进行描述而非进行限制,并且在使用这种术语和表达时不旨在排除所示出且所描述的特征(或其多个部分)的任何等效物,并且认识到在权利要求书范围内的各种修改是有可能的。从而,权利要求旨在涵盖所有这类等效方案。本文已经描述了各种特征、方面和实施例。如将由本领域技术人员理解的,特征、方面和实施例易受与彼此的组合以及受变化和修改的影响。因此,本公开应被认为包含这种组合、变化和修改。
如本文中所述,可以使用硬件元件、软件元件或其任何组合来实施各个实施例。硬件元件的示例可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。
贯穿本说明书,提及“一个实施例(one embodiment)”或“实施例(anembodiment)”意味着,结合所述实施例所描述的具体特征、结构或特性被包含在至少一个实施例中。因此,贯穿本说明书,短语“在一个实施例中(in one embodiment)”或“在实施例中(in an embodiment)”在各种场合中的出现未必都是指相同的实施例。此外,在一个或多个实施例中,可以以任何合适的方式来组合具体特征、结构、或特性。

Claims (33)

1.一种用于训练神经网络的系统,所述系统包括:
处理器电路系统;
通信接口,耦合至所述处理器电路系统,所述通信接口可耦合到神经网络;以及
存储设备,耦合至所述处理器电路系统,所述存储设备包括机器可读指令,所述指令在由所述处理器电路系统执行时使所述处理器电路系统进行以下操作:
生成神经网络训练张量,所述神经网络训练张量包括:
多个16位浮点值,所述多个16位浮点值中的每一个包括:
形成对应浮点数的尾数的第一多个位;和
形成所述对应浮点数的指数的第二多个位;以及
由所述训练张量中所包括的所述16位浮点值中的每一个所共用的五位共享指数。
2.如权利要求1所述的系统,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:
由所述第一多个位提供的十位尾数;
由所述第二多个位提供的五位指数;以及
一位符号。
3.如权利要求1所述的系统,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:
由所述第一多个位提供的可变位长尾数;
由所述第二多个位提供的可变位长指数;以及
一位符号;
其中,所述指令进一步使所述处理器电路系统基于一个或多个神经网络参数来选择:
用于表示所述可变位长尾数的位的数量;以及
用于表示所述可变位长指数的位的数量。
4.如权利要求3所述的系统,其中,所述一个或多个神经网络参数包括指示以下各项中的至少一项的趋势:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
5.如权利要求1所述的系统,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:
由所述第一多个位提供的所述尾数;
由所述第二多个位提供的所述指数;
一位符号;以及
用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
6.一种训练神经网络的方法,所述方法包括:
由处理器电路系统生成神经网络训练张量,所述神经网络训练张量包括:
多个16位浮点值,所述16位浮点值中的每一个包括:
形成对应浮点数的尾数的第一多个位;和
形成所述对应浮点数的指数的第二多个位;以及
由所述训练张量中所包括的所述16位浮点值中的每一个所共用的五位共享指数;以及
将所述训练张量中所包括的所述多个16位浮点值中的至少一个提供为所述神经网络的输入。
7.如权利要求6所述的方法,其中,生成所述神经网络训练张量包括:
生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量,其中,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的十位尾数;
由所述第二多个位提供的五位指数;以及
一位符号。
8.如权利要求6所述的方法,其中,生成所述神经网络训练张量包括:
生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量,其中,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的可变位长尾数;
由所述第二多个位提供的可变位长指数;以及
一位符号。
9.如权利要求8所述的方法,进一步包括:
由所述处理器电路系统基于一个或多个神经网络参数来选择:
用于表示所述可变位长尾数的位的第一数量;以及
用于表示所述可变位长指数的位的第二数量。
10.如权利要求9所述的方法,进一步包括:
由所述处理器电路系统检测所述训练张量中所包括的所述多个16位浮点值中的一个或多个浮点值的趋势,所检测的趋势指示以下各项中的至少一项:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
11.如权利要求9所述的方法,其中,选择用于表示所述可变位长尾数的位的第一数量、以及用于表示所述可变位长指数的位的第二数量包括:
由所述处理器电路系统响应于检测到指示以下各项中的至少一项的趋势而选择包括在所述第一多个位中的位的第一数量以及包括在所述第二多个位中的位的第二数量:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
12.如权利要求6所述的方法,其中,生成所述神经网络训练张量包括:
生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量,其中,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的所述尾数;
由所述第二多个位提供的所述指数;
一位符号;以及
用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
13.一种神经网络训练系统,包括:
用于由处理器电路系统生成神经网络训练张量的装置,所述神经网络训练张量包括:
多个16位浮点值,所述16位浮点值中的每一个包括:
形成对应浮点数的尾数的第一多个位;和
形成所述对应浮点数的指数的第二多个位;以及
由所述训练张量中所包括的所述16位浮点值中的每一个所共用的五位共享指数;以及
用于将所述训练张量中所包括的所述多个16位浮点值中的至少一个提供为所述神经网络的输入的装置。
14.如权利要求13所述的系统,其中,所述用于生成所述神经网络训练张量的装置包括:
用于生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量的装置,其中,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的十位尾数;
由所述第二多个位提供的五位指数;以及
一位符号。
15.如权利要求13所述的系统,其中,所述用于生成所述神经网络训练张量的装置进一步包括:
用于生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量的装置,其中,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的可变位长尾数;
由所述第二多个位提供的可变位长指数;以及
一位符号。
16.如权利要求15所述的系统,进一步包括:
用于选择以下各项的装置:
用于表示所述可变位长尾数的位的第一数量;以及
用于表示所述可变位长指数的位的第二数量。
17.如权利要求16所述的系统,进一步包括:
用于检测所述训练张量中所包括的所述多个16位浮点值中的一个或多个浮点值的趋势的装置,所检测的趋势指示以下各项中的至少一项:所述神经网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值的潜在下溢状况或潜在上溢状况。
18.如权利要求16所述的系统,其中,所述用于选择用于表示所述可变位长尾数的位的第一数量、以及用于表示所述可变位长指数的位的第二数量的装置进一步包括:
用于响应于检测到指示以下各项中的至少一项的趋势而选择包括在所述第一多个位中的位的第一数量以及包括在所述第二多个位中的位的第二数量的装置:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
19.如权利要求13所述的系统,其中,所述用于生成所述神经网络训练张量的装置进一步包括:
用于生成包括所述多个16位浮点值和所述五位共享指数的所述神经网络训练张量的装置,其中,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的所述尾数;
由所述第二多个位提供的所述指数;
一位符号;以及
用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
20.一种非暂态计算机可读存储介质,包括机器可读指令,所述指令在由处理器电路系统执行时使所述处理器电路系统进行以下操作:
生成神经网络训练张量,所述神经网络训练张量包括:
多个16位浮点值,所述多个16位浮点值中的每一个包括:
形成对应浮点数的尾数的第一多个位;和
形成所述对应浮点数的指数的第二多个位;以及
由所述训练张量中所包括的所述16位浮点值中的每一个所共用的五位共享指数。
21.如权利要求20所述的非暂态计算机可读存储介质,其中,使所述处理器电路系统生成包括多个16位浮点值的神经网络训练张量的所述机器可读指令进一步使得所述处理器电路系统进行以下操作:
生成包括多个16位浮点值的神经网络训练张量,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的十位尾数;
由所述第二多个位提供的五位指数;以及
一位符号。
22.如权利要求20所述的非暂态计算机可读存储介质,其中,使所述处理器电路系统生成包括多个16位浮点值的神经网络训练张量的所述机器可读指令进一步使得所述处理器电路系统进行以下操作:
生成包括多个16位浮点值的神经网络训练张量,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的可变位长尾数;
由所述第二多个位提供的可变位长指数;以及
一位符号;并且
基于一个或多个神经网络参数来选择:
用于表示所述可变位长尾数的位的数量;以及
用于表示所述可变位长指数的位的数量。
23.如权利要求22所述的非暂态计算机可读存储介质,其中,使所述处理器电路系统基于一个或多个神经网络参数来选择用于表示所述可变位长尾数和所述可变位长指数的位的数量的所述机器可读指令进一步使所述处理器电路系统进行以下操作:
基于以下各项中的一项或多项来选择用于表示所述可变位长尾数和所述可变位长指数的位的数量:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
24.如权利要求20所述的非暂态计算机可读存储介质,其中,使所述处理器电路系统生成包括多个16位浮点值的神经网络训练张量的所述机器可读指令进一步使得所述处理器电路系统进行以下操作:
生成包括多个16位浮点值的神经网络训练张量,所述多个16位浮点值中的每一个包括:
由所述第一多个位提供的所述尾数;
由所述第二多个位提供的所述指数;
一位符号;以及
用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
25.一种基于处理器的设备,包括:
印刷电路板;处理器电路系统,耦合到所述印刷电路板;输入/输出接口,可耦合到神经网络;以及
存储设备,耦合至所述处理器电路系统,所述存储设备包括机器可读指令,所述指令在由所述处理器电路系统执行时使所述处理器电路系统进行以下操作:
生成神经网络训练张量,所述神经网络训练张量包括:多个16位浮点值,所述多个16位浮点值中的每一个包括:
形成对应浮点数的尾数的第一多个位;和
形成所述对应浮点数的指数的第二多个位;以及
由所述训练张量中所包括的所述16位浮点值中的每一个所共用的五位共享指数。
26.如权利要求25所述的基于处理器的设备,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:
由所述第一多个位提供的十位尾数;由所述第二多个位提供的五位指数;以及一位符号。
27.如权利要求25所述的基于处理器的设备,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:
由所述第一多个位提供的可变位长尾数;
由所述第二多个位提供的可变位长指数;以及
一位符号;
其中,所述指令进一步使所述处理器电路系统基于一个或多个神经网络参数来选择:
用于表示所述可变位长尾数的位的数量;以及
用于表示所述可变位长指数的位的数量。
28.如权利要求27所述的基于处理器的设备,其中,所述一个或多个神经网络参数包括指示以下各项中的至少一项的趋势:所述网络训练张量中所包括的所述16位浮点值中的一个或多个浮点值中的下溢状况或上溢状况。
29.如权利要求25所述的基于处理器的设备,其中,所述神经网络训练张量中所包括的所述多个16位浮点值中的每一个都包括:
由所述第一多个位提供的所述尾数;
由所述第二多个位提供的所述指数;
一位符号;以及
用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
30.一种张量数据结构,包括:
多个16位浮点寄存器,所述多个16位浮点寄存器中的每一个包括:
与尾数值相对应的第一多个位;
与指数值相对应的第二多个位;和
符号位;以及
共享指数寄存器,所述共享指数寄存器与所述多个16位浮点寄存器中的每个对应浮点寄存器相关联。
31.如权利要求30所述的张量数据结构,其中,所述多个16位浮点寄存器中的每一个包括:
由所述第一多个位提供的十位尾数;
由所述第二多个位提供的五位指数;以及
一位符号。
32.如权利要求30所述的张量数据结构,其中,所述多个16位浮点寄存器中的每一个包括:
由所述第一多个位提供的可变位长尾数;由所述第二多个位提供的可变位长指数;以及
一位符号。
33.如权利要求30所述的张量数据结构,其中,所述多个16位浮点寄存器中的每一个包括:
由所述第一多个位提供的所述尾数;
由所述第二多个位提供的所述指数;
一位符号;以及
用于选择性地将所述对应16位浮点数的所述指数部分与所述共享指数组合的一位开关。
CN201910360720.1A 2018-06-08 2019-04-30 使用灵活浮点张量的人工神经网络训练 Pending CN110580524A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/004,243 US20190042944A1 (en) 2018-06-08 2018-06-08 Artificial neural network training using flexible floating point tensors
US16/004,243 2018-06-08

Publications (1)

Publication Number Publication Date
CN110580524A true CN110580524A (zh) 2019-12-17

Family

ID=65230317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910360720.1A Pending CN110580524A (zh) 2018-06-08 2019-04-30 使用灵活浮点张量的人工神经网络训练

Country Status (5)

Country Link
US (2) US20190042944A1 (zh)
JP (1) JP7331303B2 (zh)
KR (1) KR20190139757A (zh)
CN (1) CN110580524A (zh)
DE (1) DE102019111995A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704687A (zh) * 2020-05-21 2021-11-26 杭州海康威视数字技术股份有限公司 一种张量计算运行方法、装置及运算系统

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
US11205093B2 (en) 2018-10-11 2021-12-21 Tesla, Inc. Systems and methods for training machine models with augmented data
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US12045724B2 (en) * 2018-12-31 2024-07-23 Microsoft Technology Licensing, Llc Neural network activation compression with outlier block floating-point
US11562247B2 (en) 2019-01-24 2023-01-24 Microsoft Technology Licensing, Llc Neural network activation compression with non-uniform mantissas
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11150664B2 (en) 2019-02-01 2021-10-19 Tesla, Inc. Predicting three-dimensional features for autonomous driving
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
US20200302284A1 (en) * 2019-03-18 2020-09-24 Nvidia Corporation Data compression for a neural network
US11659565B2 (en) 2019-11-20 2023-05-23 Samsung Electronics Co., Ltd. Method and apparatus of retransmission using adjacent configured grant resource in wireless communications systems
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US20220229633A1 (en) 2020-01-07 2022-07-21 SK Hynix Inc. Multiplication and accumulation(mac) operator and processing-in-memory (pim) device including the mac operator
US11663000B2 (en) 2020-01-07 2023-05-30 SK Hynix Inc. Multiplication and accumulation(MAC) operator and processing-in-memory (PIM) device including the MAC operator
US11175957B1 (en) * 2020-09-22 2021-11-16 International Business Machines Corporation Hardware accelerator for executing a computation task
KR20240096949A (ko) * 2022-12-19 2024-06-27 한국전자기술연구원 가변 데이터 표현형을 적용한 딥러닝 학습 방법 및 이를 적용한 모바일 디바이스

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63255735A (ja) * 1987-04-13 1988-10-24 Oki Electric Ind Co Ltd 浮動小数点乗算器
US7885992B2 (en) 2006-06-22 2011-02-08 Honeywell International Inc. System and method for implementing irregular data formats
US8280939B2 (en) 2008-05-22 2012-10-02 Videoiq, Inc. Methods and apparatus for automatic accuracy-sustaining scaling of block-floating-point operands
US10528321B2 (en) 2016-12-07 2020-01-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations
US11556762B2 (en) * 2018-04-21 2023-01-17 Microsoft Technology Licensing, Llc Neural network processor based on application specific synthesis specialization parameters

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704687A (zh) * 2020-05-21 2021-11-26 杭州海康威视数字技术股份有限公司 一种张量计算运行方法、装置及运算系统
CN113704687B (zh) * 2020-05-21 2024-04-05 杭州海康威视数字技术股份有限公司 一种张量计算运行方法、装置及运算系统

Also Published As

Publication number Publication date
KR20190139757A (ko) 2019-12-18
US20190042944A1 (en) 2019-02-07
DE102019111995A1 (de) 2019-12-12
JP2019212295A (ja) 2019-12-12
JP7331303B2 (ja) 2023-08-23
US20240028905A1 (en) 2024-01-25

Similar Documents

Publication Publication Date Title
CN110580524A (zh) 使用灵活浮点张量的人工神经网络训练
US20190042945A1 (en) Methods and arrangements to quantize a neural network with machine learning
CN109478144B (zh) 一种数据处理装置和方法
US9268528B2 (en) System and method for dynamically reducing power consumption of floating-point logic
CN114868108A (zh) 组合多个整数和浮点数据类型的脉动阵列部件
WO2017142670A1 (en) Technologies for shifted neural networks
US11169776B2 (en) Decomposed floating point multiplication
US10089278B2 (en) Device and method for computing a function value of a function
Ma et al. Algorithm-hardware co-design of single shot detector for fast object detection on FPGAs
US20210279557A1 (en) Dynamic variable bit width neural processor
US11783200B2 (en) Artificial neural network implementation in field-programmable gate arrays
Lee et al. Successive log quantization for cost-efficient neural networks using stochastic computing
WO2023146613A1 (en) Reduced power consumption analog or hybrid mac neural network
US9317250B2 (en) Floating point multiply-add unit with denormal number support
US20140089361A1 (en) Arithmetic processing apparatus and an arithmetic processing method
CN104823153B (zh) 用于执行指令的处理器、归一化加法运算的方法、通信设备、机器可读介质、用于处理指令的设备和设备
CN102378960B (zh) 半导体集成电路和指数计算方法
Choi et al. A deep neural network training architecture with inference-aware heterogeneous data-type
US11831159B2 (en) Systems, devices and methods for power management and power estimation
CN116401602A (zh) 事件检测方法、装置、设备及计算机可读介质
Hemmat et al. Airnn: A featherweight framework for dynamic input-dependent approximation of cnns
US11086634B2 (en) Data processing apparatus and method
CN111198714B (zh) 重训练方法及相关产品
US11720784B2 (en) Systems and methods for enhancing inferential accuracy of an artificial neural network during training on a mixed-signal integrated circuit
CN116136752B (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