在定点运算计算系统中实现神经网络的制作方法

文档序号:15230352发布日期:2018-08-21 19:20阅读:173来源:国知局

本说明书涉及使用定点运算在执行神经网络计算的处理系统上实现神经网络。



背景技术:

神经网络是采用一个或多个非线性单元层来预测针对所接收输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层的输入,例如,下一个隐藏层或者输出层。网络的每一层根据相应参数集的当前值从所接收的输入生成输出。



技术实现要素:

本说明书描述了系统能够如何使用定点运算在执行神经网络计算的处理系统中实现神经网络。为了这样实现,系统使用从节点的浮点权重值生成的缩放值将神经网络中的每个节点的浮点权重值转换为对应的定点权重值。系统还使用相应节点的缩放值将最后一个神经网络层中的每个节点的定点输出值转换为对应的浮点权重值。

一般地,本说明书中描述的主题的一个创新的方面能够体现在方法中,所述方法包括接收使用处理系统处理神经网络的请求的动作,所述处理系统使用定点运算执行神经网络计算,所述神经网络包括多个层,每一层具有多个节点,并且每一层的每个节点具有相应浮点权重值集合;对于每一层的每个节点:根据该节点的相应浮点权重值集合来确定该节点的相应缩放值;以及使用该节点的相应缩放值来将该节点的每个浮点权重值转换为对应的定点权重值以生成该节点的定点权重值集合;以及向所述处理系统提供节点的定点浮点权重值集合以供在使用所述神经网络处理输入中使用。

前述及其他实施例可以各自可选地以单独或组合的形式包括下列特征中的一个或多个。特别地,一个实施例以组合的形式包括所有以下特征。

所述方法进一步包括接收由所述处理系统针对所述多个层中的最后一层所生成的定点输出值集合,每个定点输出值对应于所述最后一层的相应节点;以及使用与每个定点输出值相对应的所述最后一层中的每个节点的缩放值,将该定点输出值转换为相应浮点输出值。所述方法进一步包括接收所述神经网络的一个或多个输入层节点中的每个输入层节点的浮点输入值集合,其中所述一个或多个输入层节点中的每个输入层节点处于所述神经网络的所述多个层中的输入层中;使用每个输入层节点的每个缩放值来对相应输入层节点的相应浮点输入值进行转换以生成相应节点的定点输入值集合;以及向所述处理系统提供每个定点输入值以供在所述神经网络中使用以生成该定点输出值集合。将每个定点输出值转换为对应的浮点输出值包括将该定点输出值除以具有该定点输出值的相应节点相关联的相应缩放值。与每一层的每个节点相关联的相应浮点权重值集合表示与该层相关联的权重矩阵中的相应行或相应列。确定每个相应节点的相应缩放值是根据以下来执行的:与该相应节点相关联的浮点权重值集合和均与除该相应节点之外的节点相关联的浮点权重值的一个或多个集合。确定相应缩放值包括:对于与相应节点相关联的浮点权重值的每个集合,识别具有最大量值的浮点权重值;识别由所述处理系统用来执行神经网络计算的所述定点运算中的最大可表示值;基于相应浮点权重值的量值与所述最大量值的比率以及所述定点运算中的所述最大可表示值,计算每个浮点权重值集合的相应缩放值。将每个浮点权重值转换为对应的定点权重值包括:将每个浮点权重值乘以与具有该浮点权重值的相应节点相关联的相应缩放值。

本说明书中描述的主题的特定实施例能够被实现以便实现下列优点中的一个或多个。减少由与从浮点值到定点值的神经网络有关的数值转换或反之亦然所导致的准确性降低。将浮点权重值转换为定点权重值以及将定点输出值转换为浮点输出值能够导致值的准确性的损失。将用于这样的转换的缩放值定位到一个或多个神经网络节点能够降低这样的转换所导致的准确性降低。因此,神经网络处理系统所生成的输出的准确性能够得到改善同时仍然能够实现使用定点运算执行计算所产生的计算上的益处。

本说明书的主题的一个或多个实施例的细节在附图和下面的说明书中进行阐述。所述主题的其他特征、方面和优点将通过说明书、附图和权利要求而变得显而易见。

附图说明

图1示出示例神经网络处理系统。

图2是用于将浮点神经网络权重值转换成定点值的示例过程的流程图。

图3是用于将定点神经网络输出值转换成浮点值的示例过程的流程图。

各个附图中相同的附图标记和名称指示相同的元素。

具体实施方式

图1示出示例神经网络处理系统100。神经网络处理系统100是被实现为一个或多个位置处的一个或多个计算机上的计算机程序的系统的示例,下面所描述的系统、组件以及技术在所述一个或多个计算机中实现。

神经网络处理系统100是使用定点运算执行神经网络计算的处理系统。

定点运算指的是使用定点数据类型执行计算。定点数据类型通过小数点后具有固定数目数位的数来表示实际值。在计算机系统中,可以使用整数值来存储实际值,所述整数值是对实际值应用一个或多个缩放值的测量。例如,可以使用缩放值1000来将实际值1.234表示为1234。因为计算机系统中所存储的定点数集合具有小数点后相同数目的数位,定点数能够与所有这样的数的相同缩放值一起存储并使用。例如,如果计算机系统经常将每个字节的最后两位分配到所有实际值的小数部分,则能够通过将字节值除以缩放值100来将所有这样的字节转换为他们的对应实际值。

相反,浮点数据类型通过小数点后具有可变数目数位的数来表示实际值。同样地,浮点数据类型使用不同的缩放值来存储不同的实际值。

虽然使用浮点表示可能增加存储实际值的精度,浮点计算在计算上要求更高。因此,包括神经网络处理系统100的一些处理系统使用定点运算来执行他们计算中的一些或全部。例如,神经网络处理系统100可以使用仅支持定点运算的硬件来执行神经网络计算以提高处理速度,可以使用定点表示来存储与神经网络计算相关联的值(例如参数值)以降低用于执行神经网络计算所需的存储器容量,或两者。

神经网络处理系统100接收请求110作为输入以在神经网络处理系统100上实现神经网络101。

神经网络101是能够被配置为接收任意种类的数字数据输入并且基于所述输入生成任意种类的分数或分类输出的神经网络的示例。

例如,如果对神经网络101的输入是图像或已经从图像中提取出的特征,则神经网络101针对给定图像所生成的输出能够针对对象类别集合中的每个对象分类进行评分,其中每个分数表示图像包含属于该类别的对象的图像的估计似然率。

如另一个示例所述,如果对神经网络101的输入是互联网资源(例如,网页)、文档或文档部分,或者从互联网资源、文档或文档部分所提取的特征,神经网络101针对给定互联网资源、文档或文档部分所生成的输出可以是主题集合中每一个主题的分数,其中每个分数表示互联网资源、文档或文档部分是关于该主题的估计似然率。

如另一示例,如果对神经网络处理系统100的输入是特定广告的闪现场境的特征,则神经网络101所生成的输出可以是表示特定广告将会被点击的估计似然率。

如另一示例,如果对神经网络101的输入是针对用户的个性化推荐的特征,例如,表征推荐场境的特征,例如表征用户采取的先前动作的特征,则神经网络101所生成的输入可以是针对内容项集合中的每个内容项的分数,其中每个分数表示用户将会对被推荐内容项做出积极响应的估计似然率。

如另一示例,如果对神经网络101的输入是一种语言的文本,则神经网络101所生成的输出可以是另一种语言的文本片段集合中的每个文本片段的分数,其中每个分数表示另一种语言的文本片段是输入文本被适当翻译成另一种语言的估计似然率。

如另一示例,如果对神经网络101的输入是说出的话语、说出的话语序列或者从两个中的一个得到的特征,则神经网络101所生成的输出可以是文本片段集合中的每个文本片段的分数,其中每个分数表示文本片段是话语或话语序列的正确转录的估计似然率。

神经网络101包括多个神经网络层,所述多个神经网络层包括一个或多个输入层、一个或多个输出层、以及一个或多个隐藏层。神经网络层中的每一层包括一个或多个神经网络节点。神经网络层中的每一层具有一个或多个权重值。每个节点使用对应权重值处理多个输入值中的每个输入值并且对该处理结果执行操作以生成输出值。

与节点相关联的权重值是节点应该向其输入值中的一个指派多少重要性的测量。对于输入层中的节点,权重值是对神经网络101的输入的重要性的测量。对于隐藏层或输出层中的节点,权重是节点所在层的前一层的输出的重要性的测量。

特别地,实现请求110包括神经网络101的节点的权重的浮点值。这可以是因为权重值在训练期间通过训练引擎被调整,所述训练引擎使用浮点值进行其处理。

神经网络处理系统100实现用于根据实现请求110使用实现引擎102进行处理的神经网络101。

实现引擎102将浮点权重值转换为定点权重值131并且将定点输出值132转换为浮点值。因为神经网络处理系统100使用定点运算执行神经网络101计算,神经网络101的节点的权重值需要是定点值。而且,神经网络101所生成的输出值132是定点值。

将浮点权重值转换为定点权重值131在下面结合图2更详细地描述。

一旦实现引擎102已经将浮点权重值转换为定点值,神经网络处理系统100能够接收将由神经网络101处理的网络输入111。

在一些实施方式中,神经网络101的一个或多个输入层中的每一个输入层中的每个节点接收浮点输入值集合。

在这些实施方式中的一些中,实现引擎102使用针对相应节点的相应缩放值对神经网络101的一个或多个输入层中的每一个输入层中的每个节点的每个浮点输入值进行转换以生成该相应节点的定点输入值集合。

神经网络101使用神经网络101处理网络输入以生成一个或多个定点输出值132,例如通过使用定点权重值131执行定点计算。输出值是由神经网络101的输出层中的节点在对网络输入的处理期间所产生的值。

实现引擎102接着通过将定点输出值132转换为浮点值来生成网络输出161。将定点输出值132转换为浮点值以生成网络输出在下面结合图3更详细地描述。

神经网络处理系统100能够将所生成的网络输出161存储在输出数据存储库中或提供网络输出以供用于一些其他目的,例如,以供呈现在用户设备上或者以供由其他系统进行进一步处理。

图2是用于将浮点神经网络权重值转换成定点值的示例过程200的流程图。为了方便,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,例如图1的神经网络处理系统100的神经网络处理系统根据本说明书适当地编程,可以执行过程200。

该系统接收在处理系统上实现神经网络的请求,该处理系统使用定点算法执行神经网络运算(210)。神经网络包括许多层。每个层都有节点,并且每个层的每个节点都具有浮点权重值集合。

在一些实施方式中,与节点相关联的每个浮点权重值集合表示与节点的层相关联的权重矩阵中的行或列。因此,神经网络层的权重矩阵包括与该层的节点相关联的所有权重值。

系统根据节点的该浮点权重值集合确定每个节点的缩放值(220)。这样,系统确定缩放值,所述缩放值是节点本地的并且是基于节点的浮点权重值的值来确定的。

在一些实现中,系统从与节点相关联的浮点权重值中识别具有最大量值(magnitude)的浮点权重值。然后系统识别处理系统用于执行神经网络计算的定点运算中的最大可表示值。最大的可表示值是数据类型可以表示的值的量值的上限(例如,二进制数字表示系统中的数据类型的所有位都是“1”的值)。该系统然后基于在定点运算中最大量值和最大可表示值的相应浮点权重值的量值的比率来计算每个浮点权重值集合的缩放值。

例如,系统识别到与节点n1相关联的最大浮点权重值是.45。然后系统识别到系统使用无符号的8位整数来执行定点神经网络计算。因此,系统识别到处理系统使用的定点运算中的最大可表示值是28-1=255(即对应于二进制值111111112)。系统然后将.45除以255以计算n1的浮点权重值集合的缩放值。

在一些实施方式中,系统为神经网络层的两个或更多个节点确定公共缩放值。在那些实施方式中,系统将与两个或更多个节点中的任何节点相关联的最大浮点权重值除以处理系统使用的定点运算中的最大可表示值以执行神经网络计算。

系统使用具有浮点权重值的节点的缩放值将每个浮点权重值转换为固定点权重值(230)。在一些实施方式中,系统将每个浮点权重值乘以与具有浮点权重值的相应节点相关联的相应缩放比以生成定点权重值。

系统将所述定点浮点权重值集合提供给处理系统以用于神经网络处理(240)。神经网络处理系统使用权重值来使用神经网络处理网络输入以生成网络输出。在一些实施方式中,在给定网络输入的处理期间,对于每个节点,神经网络处理系统将对该节点的每个输入值乘以对应的固定点权重值,并且将乘法的结果相加以生成用于使用定点运算的节点的激活函数的激活输入。

图3是用于将定点神经网络输出值转换成浮点值的示例300的流程图。为了方便,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,神经网络处理系统,例如图1的神经网络处理系统100,根据本说明书适当地编程,可以执行过程300。

系统接收定点输出值集合(310)。定点输出值是由处理系统针对最后一层神经网络(即神经网络的输出层)生成的。每个定点输出值都是最后一层节点的输出。

系统识别到最后一层的每个节点的缩放值(320)。以上参考图2进一步详细描述了计算神经网络节点的缩放值。

系统将每个定点输出值转换为浮点输出值(330)。在一些实施方式中,系统将定点输出值除以与具有定点输出值的相应节点相关联的相应缩放值,以生成该节点的浮点输出值。

本说明书中描述的主题和功能操作的实施例可以以数字电子电路、有形地实施的计算机软件或固件、计算机硬件(包括本说明书中公开的结构及其结构等同物)或以其中一个或多个的组合来实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形的非暂时性存储介质上的用于由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储设备、或它们中的一个或多个的组合。替选地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码信息以传输给合适的接收器装置以供由数据处理装置执行。

术语“数据处理装置”是指数据处理硬件并且包括用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机、或多个处理器或计算机。该装置还可以是或者还包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统的代码或者其中的一项或多项的组合。

可以被称为或被描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言来编写,包括编译的或解释性语言、或声明性或过程性语言,并且可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。程序可以但不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件(例如存储在标记语言文档中的一个或多个脚本)的一部分中、专用于所讨论的程序的单个文件中、或者存储在多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署为在一台计算机上或位于一个站点或分布在多个站点并通过数据通信网络互连的多台计算机上执行。

对于被配置为执行特定操作或动作的一个或多个计算机的系统意味着其上已经安装了软件、固件、硬件或其组合,所述软件、固件、硬件或其组合在操作中使得系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序意味着一个或多个程序包括当由数据处理装置执行时使得所述装置执行操作或动作的指令。

如在本说明书中所使用的,“引擎”,或“软件引擎”是指提供不同于输入的输出的软件实现的输入/输出系统。引擎能是功能性的编码块,诸如库、平台、软件开发套件(“sdk”)或对象。每一引擎能实现在包括一个或多个处理器和计算机可读介质上的任何适当类型的计算设备上,例如服务器、移动电话、平板电脑、笔记本电脑、音乐播放器、电子书阅读器、膝上型或桌面型计算机、pda、智能电话或其他固定或便携式设备。此外,引擎中的两个或多于两个可以实现在同一计算设备上,或不同的计算设备上。

在本说明书中描述的过程和逻辑流程能由一个或者多个可编程计算机执行,该一个或者多个可编程计算机执行一个或者多个计算机程序以通过对输入数据操作并且生成输出来执行功能。该过程和逻辑流还能由专用逻辑电路(例如,fpga或者asic)实现,或由专用逻辑电路的组合以及一个或多个编程计算机实现。

适合于执行计算机程序的计算机能基于通用或专用微处理器或者其两者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的必要元件是用于实现或执行指令的中央处理单元以及用于存储指令和数据的一个或者多个存储器设备。中央处理单元和存储器可以有专用逻辑电路来补充或者并入专用逻辑电路。通常,计算机还将包括或可操作地耦接以从其接收数据或向其传送数据的用于存储数据的一个或者多个海量存储设备,例如,磁盘、磁光盘或者光盘。然而,计算机无需具有这样的设备。另外,计算机能被嵌入于另一设备中,聊举数例,例如,移动电话、个人数字助理(pda)、移动音频或者视频播放器、游戏控制台、全球定位系统(gps)接收器或者便携存储设备,例如,通用串行总线(usb)闪存驱动。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例而言包括半导体存储器设备,例如,eprom、eeprom和闪速存储器设备;磁盘,例如,内部硬盘或者可移动盘;磁光盘;以及cd-rom和dvd-rom盘。

为了提供与用户的交互,能在计算机上实施在本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的显示设备,例如,crt(阴极射线管)或lcd(液晶显示器)监视器以及用户能用来向计算机提供输入的键盘、例如鼠标、轨迹球的指示设备或存在敏感显示器或其他接口。其他种类的设备也能用来提供与用户的交互;例如,向用户提供的反馈能是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且能用包括声音、语音或者触觉输入的任何形式接收来自用户的输入。此外,计算机能通过向用户使用的设备发送文档和从该设备接收文档,例如,通过响应于从web浏览器接收的请求,向用户的客户端设备上的web浏览器发送网页来与用户交互。此外,计算机可以通过将文本消息或其他形式的消息发送到个人设备来与用户交互,所述个人设备例如运行消息传输应用并且作为回复接收来自用户的响应消息的智能电话。

在本说明书中描述的主题的实施例能在计算系统中实施,该计算系统包括例如作为数据服务器的后端组件,或者包括中间件组件,例如,应用服务器或者包括前端组件,例如,具有图形用户界面、web浏览器或app的客户端计算机,用户能通过它们与在本说明书中描述的主题的实现方式交互,或者一个或者多个这样的后端、中间件或者前端部件的任何组合。系统的组件能通过任何数字数据通信形式或者介质,例如,通信网络互连。通信网络的示例包括局域网(lan)和广域网(wan),例如,互联网。

计算系统能包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备传送数据,例如html页面,例如出于向与充当客户端的设备交互的用户显示数据并且从所述用户接收用户输入。在用户设备处生成的数据(例如,用户交互的结果)能够在服务器处从所述设备接收。

尽管本说明书包含许多具体实现方式细节,但是不应将这些解释为限制任何发明的范围或可以要求保护的内容的范围,而是解释为对具体发明的具体实现方式特有的特征的描述。在本说明书中在分开的实施例的背景中描述的某些特征也能在单个实施例中被组合实施。相反地,在单个实施例的背景中描述的各种特征也能在多个实施例中分开地或者在任何适当子组合中被实施。另外,虽然上文能将特征描述为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征能在一些情况下从该组合中被删除,并且要求保护的组合能涉及子组合或者子组合的变型。

类似地,尽管在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示特定顺序或者以依次顺序执行这样的操作或者执行所有所示操作以实现希望的结果。在某些场境中,多任务和并行处理会是有利的。另外,在上文描述的实施例中的各种系统模块和部件的分离不应被理解为在所有实施例中要求这样的分离,并且应当理解描述的程序组件和系统一般能一起集成于单个软件产品中或者被封装到多个软件产品中。

在以下示例中概述进一步的实施方式:

示例1:一种方法,包括:接收使用处理系统处理神经网络的请求,所述处理系统使用定点运算执行神经网络计算,所述神经网络包括多个层,每一层具有多个节点,并且每一层的每个节点具有相应浮点权重值集合;对于每一层的每个节点:根据该节点的相应浮点权重值集合来确定该节点的相应缩放值;以及使用该节点的相应缩放值来将该节点的每个浮点权重值转换为对应的定点权重值以生成该节点的定点权重值集合;以及向所述处理系统提供节点的定点浮点权重值集合以供在使用所述神经网络处理输入中使用。

示例2:根据示例1所述的方法,进一步包括:接收由所述处理系统针对所述多个层中的最后一层所生成的定点输出值集合,每个定点输出值对应于所述最后一层的相应节点;以及使用与每个定点输出值相对应的所述最后一层中的每个节点的缩放值,将该定点输出值转换为相应浮点输出值。

示例3:根据示例2所述的方法,进一步包括:接收所述神经网络的一个或多个输入层节点中的每个输入层节点的浮点输入值集合,其中所述一个或多个输入层节点中的每个输入层节点处于所述神经网络的所述多个层中的输入层中;使用每个输入层节点的相应缩放值类似对相应输入层节点的浮点输入值进行转换以生成相应节点的定点输入值集合;以及向所述处理系统提供每个定点输入值以供在所述神经网络中使用以生成所述定点输出值集合。

示例4:根据示例2或3所述的方法,其中,将每个定点输出值转换为对应的浮点输出值包括将该定点输出值除以具有该定点输出值的相应节点相关联的相应缩放值。

示例5:根据示例1至4中的一个所述的方法,其中,与每一层的每个节点相关联的相应浮点权重值集合表示与该层相关联的权重矩阵中的相应行或相应列。

示例6:根据示例1至5中的一个所述的方法,其中,确定每个相应节点的相应缩放值是根据以下来执行的:与该相应节点相关联的浮点权重值集合和均与除该相应节点之外的节点相关联的浮点权重值的一个或多个集合。

示例7:根据示例1至6中的一个所述的方法,其中,确定相应缩放值包括:对于与相应节点相关联的浮点权重值的每个集合,识别具有最大量值的浮点权重值;识别由所述处理系统用来执行神经网络计算的所述定点运算中的最大可表示值;基于相应浮点权重值的量值与所述最大量值的比率以及所述定点运算中的所述最大可表示值,计算每个浮点权重值集合的相应缩放值。

示例8:根据示例1至7中的一个所述的方法,其中,将每个浮点权重值转换为对应的定点权重值包括:将每个浮点权重值乘以与具有该浮点权重值的相应节点相关联的相应缩放值。

示例9:一种系统,所述系统包括一个或多个计算机以及存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时能够操作为使得所述一个或多个计算机执行操作,所述操作包括:接收在处理系统上实现神经网络的请求,所述处理系统使用定点运算执行神经网络计算,所述神经网络包括多个层,每一层具有多个节点,并且每一层的每个节点具有相应浮点权重值集合;对于每一层的每个节点:根据相应浮点权重值集合来确定该节点的相应缩放值;以及使用该节点的相应缩放值来将该节点的每个浮点权重值转换为对应的定点权重值以生成该节点的定点权重值集合;以及向所述处理系统提供节点的定点浮点权重值集合以供在使用所述神经网络处理输入中使用。

示例10:根据示例9所述的系统,所述操作进一步包括:接收由所述处理系统针对所述多个层中的最后一层所生成的定点输出值集合,每个定点输出值对应于所述最后一层的相应节点;以及使用与每个定点输出值相对应的所述最后一层中的每个节点的缩放值,将该定点输出值转换为相应浮点输出值。

示例11:根据示例10所述的系统,所述操作进一步包括:接收所述神经网络的一个或多个输入层节点中的每个输入层节点的浮点输入值集合,其中所述一个或多个输入层节点中的每个输入层节点处于所述神经网络的所述多个层中的输入层中;使用每个输入层节点的相应缩放值,对相应输入层节点的浮点输入值进行转换以生成相应节点的定点输入值集合;以及向所述处理系统提供每个定点输入值以供在所述神经网络中使用以生成所述定点输出值集合。

示例12:根据示例10或11所述的系统,其中,将每个定点输出值转换为对应的浮点输出值包括将该定点输出值除以具有该定点输出值的相应节点相关联的相应缩放值。

示例13:根据示例9至12中的一个所述的系统,其中,与每一层的每个节点相关联的相应浮点权重值集合表示与该层相关联的权重矩阵中的相应行或相应列。

示例14:根据示例9至13中的一个所述的系统,其中,确定每个相应节点的相应缩放值是根据以下来执行的:与该相应节点相关联的浮点权重值集合和均与除该相应节点之外的节点相关联的浮点权重值的一个或多个集合。

示例15:根据示例9至14中的一个所述的系统,其中,确定相应缩放值包括:对于与相应节点相关联的浮点权重值的每个集合,识别具有最大量值的浮点权重值;识别由所述处理系统用来执行神经网络计算的所述定点运算中的最大可表示值;基于相应浮点权重值的量值与所述最大量值的比率以及所述定点运算中的所述最大可表示值,计算每个浮点权重值集合的相应缩放值。

示例16:根据示例9至15中的一个所述的系统,其中,将每个浮点权重值转换为对应的定点权重值包括:将每个浮点权重值乘以与具有该浮点权重值的相应节点相关联的相应缩放值。

示例17:一种编码有指令的计算机存储介质,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机执行操作,所述操作包括:接收在处理系统上实现神经网络的请求,所述处理系统使用定点运算执行神经网络计算,所述神经网络包括多个层,每一层具有多个节点,并且每一层的每个节点具有相应浮点权重值集合;对于每一层的每个节点:根据相应浮点权重值集合来确定该节点的相应缩放值;以及使用该节点的相应缩放值来将该节点的每个浮点权重值转换为对应的定点权重值以生成该节点的定点权重值集合;以及向所述处理系统提供节点的定点浮点权重值集合以供在使用所述神经网络处理输入中使用。

示例18:根据示例17所述的计算机存储介质,所述操作进一步包括:接收由所述处理系统针对所述多个层中的最后一层所生成的定点输出值集合,每个定点输出值对应于所述最后一层的相应节点;以及使用与每个定点输出值相对应的所述最后一层中的每个节点的缩放值,将该定点输出值转换为相应浮点输出值。

示例19:根据示例18所述的计算机存储介质,所述操作进一步包括:接收所述神经网络的一个或多个输入层节点中的每个输入层节点的浮点输入值集合,其中所述一个或多个输入层节点中的每个输入层节点处于所述神经网络的所述多个层中的输入层中;使用每个输入层节点的相应缩放值来对相应输入层节点的浮点输入值进行转换以生成相应节点的定点输入值集合;以及向所述处理系统提供每个定点输入值以供在所述神经网络中使用以生成所述定点输出值集合。

示例20:根据示例19所述的计算机存储介质,其中,将每个定点输出值转换为对应的浮点输出值包括将该定点输出值除以具有该定点输出值的相应节点相关联的相应缩放值。

已经描述了本主题的特定实施例。其他实施例处于所述权利要求书的范围内。例如,权利要求书中记载的动作能够以不同顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或依次顺序来实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1