一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

神经网络表示格式的制作方法

2022-07-17 00:59:26 来源:中国专利 TAG:


1.本技术是关于神经网络表示格式的概念。


背景技术:

2.神经网络(nn)在现今的许多应用中取得了突破:
3.·
图像/视频数据中的对象检测或者分类
4.·
音频中的语音/关键词辨识
5.·
语音合成
6.·
光学字符识别
7.·
语言翻译
8.·
等等
9.然而,表示nn所需的大量数据仍妨碍在某些使用情境中的适应性。在大多数情况下,此数据包括描述神经元之间的连接的两种类型的参数:权重和偏差。权重通常是对输入值(例如,点积或者卷积)执行某种类型的线性变换,或者换言之,对神经元的输入进行加权的参数,并且偏差是在线性计算之后添加的,或者换言之,抵消神经元对入端口经加权消息的聚合的位移。更具体而言,这些权重、偏差和特征化nn的每一层(多达数百个层)中的潜在的巨大数量的神经元(多达数千万)中的两者之间的每一连接的另一参数占据与特定nn相关联的数据的主要部分。此外,这些参数通常由相当大的浮点日期类型组成。这些参数通常表达为携载每一层的所有参数的大的张量。当应用需要所涉及nn的频繁传输/更新时,必要的数据速率成为严重的瓶颈。因此,借助于这些矩阵的有损压缩来减小nn表示的经编码大小的努力是有前景的方法。
10.通常,以容器格式(onnx(onnx=开放神经网络交换)、pytorch、tensorflow和其类似物)存储参数张量,所述容器格式携载对于完全重构nn和执行它所必需的所有数据(诸如,以上参数矩阵)和其他性质(诸如,参数张量的维度、层的类型、操作等)。
11.掌握如下概念将是有利的:所述概念使机器学习预测器,或者换言之,诸如神经网络的机器学习模型的传输/更新呈现为更高效的,诸如就保持所推断质量而言更高效,同时减小nn表示的经编码大小、计算推断复杂度、描述或者存储nn表示的复杂度,或者所述概念实现比当前更频繁的nn传输/更新或者甚至改善手头某一任务和/或某一本端输入数据统计的推断质量。此外,在执行基于神经网络的预测时提供神经网络表示、此神经网络表示的导出和此神经网络表示的使用将是有利的,使得神经网络的使用比当前更有效。


技术实现要素:

12.因此,本发明的目的是提供一种高效使用神经网络和/或高效传输和/或更新神经网络的概念。此目的是通过本技术的独立技术方案的主题来达成。
13.根据本发明的其他实施例是由本技术的附属技术方案的主题定义。
14.本技术的第一方面的基本构思是:如果序列化参数被编码到数据流中/从数据流
中解码,则神经网络nn的使用呈现是高效的,所述数据流具有编码到其中的nn的表示。所述序列化参数指示定义nn的神经元互连的nn参数被编码到数据流中的编码次序。神经元互连可表示nn的不同nn层的神经元之间的连接。换言之,nn参数可定义以下两者之间的连接:与nn的第一层相关联的第一神经元;以及与nn的第二层相关联的第二神经元。解码器可使用编码次序以将从数据流串行地解码的nn参数分配给神经元互连。
15.特别是,结果证明,使用序列化参数会将位串高效地划分成nn参数的有意义的连续子集。序列化参数可指示nn参数的分组,从而允许nn的高效执行。这可取决于nn的应用情境而进行。对于不同的应用情境,编码器可使用不同的编码次序来遍历nn参数。因此,可取决于nn的应用情境而使用单独编码次序来编码nn参数,并且解码器可相应地在解码时因为由序列化参数提供的信息而重构参数。nn参数可表示一个或多个参数矩阵或者张量的项,其中所述参数矩阵或者张量可用于推断程序。已发现,nn的一个或多个参数矩阵或者张量可通过解码器基于经解码的nn参数和序列化参数而高效地重构。
16.因此,序列化参数允许使用不同的应用特定编码次序,从而允许以改善的效率进行灵活编码和解码。举例而言,沿着不同维度编码参数可能有益于所得压缩性能,这是因为熵编码器可以能够较佳地捕获所述参数间的依赖性。在另一示例中,可能需要根据某些应用特定准则将参数分组,亦即,所述参数与输入数据的何部分相关或者所述参数是否可联合地执行,使得可并行地解码/推断所述参数。另一示例是根据通用矩阵矩阵(gemm)乘积扫描次序来编码参数,所述扫描次序支持在执行点积运算时对经解码参数的高效内存分配(andrew kerr,2017年)。
17.另一实施例是有关于数据的编码器侧的所选择排列,例如以便达成例如待编码的nn参数的能量压紧且随后根据所得次序处理/序列化/编码所得排列数据。因此,所述排列可将参数分类使得所述参数沿着编码次序稳定地增加或者使得所述参数沿着编码次序稳定地减小。
18.根据本技术的第二方面,本技术的发明人意识到,如果数值计算表示参数被编码到数据流中/从数据流解码,则神经网络nn的使用呈现是高效的,所述数据流具有编码到其中的nn的表示。数值计算表示参数指示将在使用nn进行推断时表示编码到数据流中的nn的nn参数的数值表示(例如,在浮点或者固定点表示之中)和位尺寸。编码器被配置为编码nn参数。解码器被配置为解码nn参数,并且可被配置为使用数值表示和位尺寸用于表示从数据流ds解码的nn参数。
19.此实施例是基于以下构思:表示nn参数和激活值是有利的,所述激活值由在使用nn进行推断时使用nn参数产生,nn参数和激活值两者均具有相同数值表示和位尺寸。基于数值计算表示参数,有可能高效地比较用于nn参数的所指示数值表示和位尺寸与用于激活值的可能数值表示和位尺寸。这在数值计算表示参数将固定点表示指示为数值表示的情况下可能尤其有利,这是因为之后,如果nn参数和激活值两者可用固定点表示表示,则由于固定点算术,可高效地执行推断。
20.根据本技术的第三方面,本技术的发明人意识到,如果nn层类型参数被编码到数据流中/从数据流解码,则神经网络的使用呈现是高效的,所述数据流具有编码到其中的nn的表示。nn层类型参数指示nn的预定nn层的nn层类型,例如卷积层类型或者完全连接层类型。所述数据流被结构化为一个或多个可单独访问部分,每一可单独访问部分表示nn的对
应nn层。预定nn层表示神经网络的nn层中的一个。视情况,对于nn的两个或更多个预定nn层中的每一个,nn层类型参数被编码到数据流中/从数据流解码,其中所述nn层类型参数在至少一些预定nn层之间可能不同。
21.此实施例是基于以下构思:数据流包括用于nn层的nn层类型参数以便例如理解参数张量/矩阵的维度的含义可以是有用的。此外,可在编码时以不同方式处理不同层,以便较佳地捕获数据中的依赖性且导致较高编码效率(例如,通过使用上下文模型的不同集合或者模式),这可以是解码器在解码之前知道的关键信息。
22.类似地,将表明nn参数的参数类型的类型参数编码到数据流中/从数据流解码可是有利的。类型参数可指示nn参数是否表示权重或者偏差。所述数据流被结构化为一个或多个可单独访问部分,每一可单独访问部分表示nn的对应nn层。表示对应预定nn层的可单独访问部分可被进一步结构化为可单独访问子部分。根据编码次序完全遍历每一可单独访问子部分,之后根据编码次序遍历后续可单独访问子部分。举例而言,nn参数和类型参数被编码到每一可单独访问子部分中且可被解码。第一可单独访问子部分的nn参数可属于与第二可单独访问子部分的nn参数不同的参数类型或者相同的参数类型。与同一nn层相关联的不同类型的nn参数可被编码到与同一可单独访问部分相关联的不同可单独访问子部分中/从不同可单独访问子部分解码。当例如不同类型的依赖性可用于每一类型的参数时或者如果希望并行解码等,则参数类型之间的区别有利于编码/解码。举例而言,有可能并行地编码/解码与同一nn层相关联的不同类型的nn参数。此实现nn参数的编码/解码的较高效率且也可能有益于所得压缩性能,这是因为熵编码器可能够较佳地捕获nn参数间的依赖性。
23.根据本技术的第四方面,本技术的发明人意识到,如果指针被编码到数据流中/从数据流解码,则神经网络的传输/更新呈现是高效的,所述数据流具有编码到其中的nn的表示。这是由于以下事实:所述数据流被结构化为可单独访问部分且对于一个或多个预定可单独访问部分中的每一个,指针指向相应的预定可单独访问部分的开始。并非所有可单独访问部分都需要为预定可单独访问部分,但有可能所有可单独访问部分都表示预定可单独访问部分。可按默认或者取决于编码到数据流中的nn的应用而设置一个或多个预定可单独访问部分。所述指针例如将相应的预定可单独访问部分的开始指示为数据流位置(以字节的形式)或者位移,例如相对于数据流的开始或者相对于对应于nn层的部分的开始的字节位移,相应的预定可单独访问部分属于所述部分。所述指针可被编码到数据流的头部部分中/从所述头部部分解码。根据一实施例,对于一个或多个预定可单独访问部分中的每一个,在相应的预定可单独访问部分表示神经网络的对应nn层的情况下,所述指针被编码到数据流的头部部分中/从所述头部部分解码,或者在相应的预定可单独访问部分表示nn的nn层的nn部分的情况下,所述指针被编码到对应于nn层的部分的参数集部分中/从所述参数集部分解码。nn的nn层的nn部分可表示相应nn层的基线区段或者相应层的进阶区段。通过所述指针,有可能高效地访问数据流的预定可单独访问部分,从而使得例如能够使层处理并行化或者将数据流封装成相应容器格式。所述指针允许更容易、更快且更充分地访问预定可单独访问部分,以便促进需要nn的并行或者部分解码和执行的应用。
24.根据本技术的第五方面,本技术的发明人意识到,如果开始码、指针和/或数据流长度参数被编码到数据流的可单独访问子部分中/从所述可单独访问子部分解码,则神经网络的传输/更新呈现是高效的,所述数据流具有编码到其中的nn的表示。所述数据流被结
构化为一个或多个可单独访问部分,每一可单独访问部分表示神经网络的对应nn层。另外,在一个或多个预定可单独访问部分内,所述数据流被进一步结构化为可单独访问子部分,每一可单独访问子部分表示神经网络的相应nn层的对应nn部分。一种装置被配置为针对一个或多个预定可单独访问子部分中的每一个而将相应预定可单独访问子部分开始的开始码和/或指向相应预定可单独访问子部分的开始的指针和/或数据流长度参数编码到数据流中/从数据流解码,所述数据流长度参数指示相应预定可单独访问子部分的数据流长度以用于在解析ds时跳过相应预定可单独访问子部分。所述开始码、所述指针和/或所述数据流长度参数使得能够高效访问预定可单独访问子部分。这尤其有益于可依赖于以特定可配置方式将nn层内的nn参数分组的应用,这是因为所述分组可有益于部分或者并行地解码/处理/推断nn参数。因此,逐可单独访问子部分访问可单独访问部分可有助于并行地访问所期望的数据或者排除不必要的数据部分。已发现,使用开始码指示可单独访问子部分是足够的。这是基于如下发现:每nn层(亦即,可单独访问部分)的数据量通常小于nn层将由整个数据流内的开始码检测的情况。然而,使用指针和/或数据流长度参数以改善对可单独访问子部分的访问也是有利的。根据一实施例,数据流的可单独访问部分内的一个或多个可单独访问子部分由指针指示,所述指针指示可单独访问部分的参数集部分中的数据流位置(以字节的形式)。数据流长度参数可指示可单独访问子部分的游程长度。数据流长度参数可被编码到数据流的头部部分中/从所述头部部分解码,或者编码到可单独访问部分的参数集部分中/从所述参数集部分解码。出于将一个或多个可单独访问子部分封装于适当容器中的目的,可使用数据流长度参数以便促进截取相应可单独访问子部分。根据一实施例,一种用于解码数据流的装置被配置为针对一个或多个预定可单独访问子部分而使用开始码和/或指针和/或数据流长度参数以用于访问数据流。
25.根据本技术的第六方面,本技术的发明人意识到,如果处理选项参数被编码到数据流中/从所述数据流中解码,则神经网络的使用呈现是高效的,所述数据流具有编码到其中的nn的表示。所述数据流被结构化为可单独访问部分,并且对于一个或多个预定可单独访问部分中的每一个,处理选项参数指示将在使用神经网络进行推断时必须使用或者可以可选地使用的一个或多个处理选项。处理选项参数可指示也判定客户端是否和如何将访问可单独访问部分(p)和/或可单独访问子部分(sp)的各种处理选项中的一个处理选项,如对于p和/或sp中的每一个,相应p或者sp的并行处理能力和/或相应p或者sp的逐样本并行处理能力和/或相应p或者sp的逐通道并行处理能力和/或相应p或者sp的逐分类类别并行处理能力和/或其他处理选项。处理选项参数允许客户端作出适当决策且因此允许nn的高效使用。
26.根据本技术的第七方面,本技术的发明人意识到,如果用于反量化nn参数的重构规则取决于nn参数所属的nn部分,则神经网络的传输/更新呈现是高效的。nn参数是以被量化到量化索引上的方式编码到数据流中,所述nn参数表示神经网络。一种用于解码的装置被配置为例如使用重构规则反量化所述量化索引,从而重构nn参数。nn参数被编码到数据流中,使得以不同方式量化nn的不同nn部分中的nn参数,并且数据流针对nn部分中的每一个,指示用于反量化与相应nn部分相关的nn参数的重构规则。用于解码的装置被配置为针对nn部分中的每一个而使用由数据流针对相应nn部分所指示的重构规则,以反量化相应nn部分中的nn参数。举例而言,nn部分包括nn的一个或多个nn层和/或nn层的部分,nn的预定
nn层被细分成所述部分。
27.根据一实施例,用于反量化与第一nn部分相关的nn参数的第一重构规则是以相对于用于反量化与第二nn部分相关的nn参数的第二重构规则而增量编码的方式编码到数据流中。第一nn部分可包括第一nn层,并且第二nn部分可包括第二层,其中第一nn层不同于第二nn层。替代地,第一nn部分可包括第一nn层,并且第二nn部分可包括第一nn层中的一个的部分。在此替代情况下,与预定nn层的一部分中的nn参数相关的例如第二重构规则的重构规则相对于与预定nn层相关的例如第一重构规则的重构规则进行增量编码。重构规则的此特殊增量编码可允许仅使用少数位用于用信号通知重构规则,并且可导致神经网络的高效传输/更新。
28.根据本技术的第八方面,本技术的发明人意识到,如果用于反量化nn参数的重构规则取决于与nn参数相关联的量化索引的量值,则神经网络的传输/更新呈现是高效的。nn参数是以被量化到量化索引上的方式编码到数据流中,所述nn参数表示神经网络。一种用于解码的装置被配置为例如使用重构规则反量化所述量化索引,从而重构nn参数。所述数据流包括用于指示用于反量化nn参数的重构规则的以下各项:量化步长参数,其指示量化步长;以及参数集,其定义量化索引至重构级别映射。用于预定nn部分中的nn参数的重构规则由以下各项定义:量化步长,其用于预定索引间隔内的量化索引;以及量化索引至重构级别映射,其用于预定索引间隔外的量化索引。对于每一nn参数,与预定索引间隔内的量化索引相关联的相应nn参数例如通过将相应量化索引乘以量化步长来重构,并且对应于预定索引间隔外的量化索引的相应nn参数例如通过使用量化索引至重构级别映射将相应量化索引映射至重构级别上来重构。解码器可被配置为基于数据流中的参数集来判定量化索引至重构级别映射。根据一实施例,参数集通过指向量化索引至重构级别映射的集合中的量化索引至重构级别映射来定义量化索引至重构级别映射,其中量化索引至重构级别映射的集合可能并非数据流的部分,例如其可保存于编码器侧和解码器侧处。基于量化索引的量值定义重构规则可导致用少数位用信号通知重构规则。
29.根据本技术的第九方面,本技术的发明人意识到,如果标识参数被编码到数据流的可单独访问部分中/从所述可单独访问部分解码,则神经网络的传输/更新呈现是高效的,所述数据流具有编码到其中的nn的表示。所述数据流被结构化为可单独访问部分且对于一个或多个预定可单独访问部分中的每一个,用于识别相应的预定可单独访问部分的标识参数被编码到数据流中/从所述数据流中解码。标识参数可指示预定可单独访问部分的版本。这在诸如分布式学习的情境中尤其有利,其中许多客户端单独地进一步训练nn且将相对nn更新发送回至中央实体。标识参数可用以经由版本管理方案来识别单独客户端的nn。由此,中央实体可识别建置nn更新所基于的nn。额外地或者替代地,标识参数可指示预定可单独访问部分与nn的基线部分或者与nn的进阶/增强/完整部分相关联。这例如在诸如可扩展nn的使用情况下是有利的,其中可执行nn的基线部分例如以便产生初步结果,之后进行完整或者增强的nn以接收完整结果。另外,可易于使用标识参数辨识可基于表示nn的nn参数重构的参数张量的传输错误或者非自主改变。标识参数允许每一预定可单独访问部分校验完整性,并且在基于nn特性进行验证时使操作具有更强的错误稳固性。
30.根据本技术的第十方面,本技术的发明人意识到,如果nn的不同版本使用增量编码或者使用补偿方案被编码到数据流中/从所述数据流中解码,则神经网络的传输/更新呈
现是高效的。所述数据流具有以分层方式编码到其中的nn的表示,使得nn的不同版本被编码到数据流中。所述数据流被结构化为一个或多个可单独访问部分,每一可单独访问部分与nn的对应版本相关。所述数据流具有例如被编码到第一部分中的nn的第一版本,所述第一版本被相对于被编码到第二部分中的nn的第二版本进行增量编码。额外地或者替代地,所述数据流具有例如被编码到第一部分中的以一个或多个补偿nn部分的形式的nn的第一版本,所述一个或多个补偿nn部分中的每一个用于基于nn的第一版本执行推断,除被编码到第二部分中的nn的第二版本的对应nn部分的执行以外也被执行,并且其中相应补偿nn部分和对应nn部分的输出将被求和。利用数据流中的nn的这些经编码版本,例如解码器的客户端可匹配其处理能力或者可能够首先对例如基线的第一版本进行推断,之后处理第二版本,例如更复杂的进阶nn。此外,通过应用/使用增量编码和/或补偿方案,nn的不同版本可用少数位编码到ds中。
31.根据本技术的第十一方面,本技术的发明人意识到,如果补充数据被编码到数据流的可单独访问部分中/从所述可单独访问部分解码,则神经网络的使用呈现是高效的,所述数据流具有编码到其中的nn的表示。所述数据流被结构化为可单独访问部分,并且所述数据流针对一个或多个预定可单独访问部分中的每一个包括用于补充nn的表示的补充数据。此补充数据对于nn的解码/重构/推断通常并非必需的,然而,从应用视角,其为必要的。因此,以下情况是有利的:仅出于推断的目的,将此补充数据标记为与nn的解码不相关,使得不需要补充数据的例如解码器的客户端能够跳过数据的此部分。
32.根据本技术的第十二方面,本技术的发明人意识到,如果分层控制数据被编码到数据流中/从所述数据流中解码,则神经网络的使用呈现是高效的,所述数据流具有编码到其中的nn的表示。所述数据流包括被结构化为控制数据部分的序列的分层控制数据,其中所述控制数据部分沿着控制数据部分的序列以增加的细节提供关于nn的信息。以阶层方式结构化控制数据是有利的,这是因为解码器可能仅需要达到某一细节程度的控制数据且可因此跳过提供更多细节的控制数据。因此,取决于使用情况和其对环境的了解,可能需要不同等级的控制数据,并且通过前述呈现方案,此控制数据使得能够高效访问不同使用情况所需的控制数据。
33.尽管已在装置的上下文中描述一些方面,但显然,这些方面也表示对应方法的描述,其中块或者设备对应于方法步骤或者方法步骤的特征。实施例是关于一种计算机程序,其具有在运行于计算机上时用于执行此方法的程序代码。
附图说明
34.本发明的实施方案为附属技术方案的主题。下文中关于图描述本技术的优选实施例。图未必按比例绘制;重点替代地通常放在说明本发明的原理上。在以下描述中,参看以下图描述本发明的各种实施例,其中:
35.图1示出用于编码/解码神经网络的编码/解码管线的示例;
36.图2示出可根据实施例中的一个实施例被编码/解码的神经网络;
37.图3示出根据实施例的神经网络的层的参数张量的序列化;
38.图4示出根据实施例的用于指示如何序列化神经网络参数的序列化参数的使用;
39.图5示出单输出通道卷积层的示例;
40.图6示出完全连接层的示例;
41.图7示出根据实施例的可编码神经网络参数的n个编码次序的集合;
42.图8示出根据实施例的可单独访问部分或者子部分的上下文自适应性算术编码;
43.图9示出根据实施例的数值计算表示参数的使用;
44.图10示出根据实施例的指示神经网络的神经网络层的神经网络层类型的神经网络层类型参数的使用;
45.图11示出根据实施例的具有指向可单独访问部分的开始的指针的数据流的一般实施例;
46.图12示出根据实施例的具有指向可单独访问部分的开始的数据流的详细实施例;
47.图13示出根据实施例的开始码和/或指针和/或数据流长度参数的使用以使得能够访问可单独访问子部分;
48.图14a示出根据实施例的使用指针的子层访问;
49.图14b示出根据实施例的使用开始码的子层访问;
50.图15根据实施例将随机访问的示例性类型示出为用于可单独访问部分的可能处理选项;
51.图16示出根据实施例的处理选项参数的使用;
52.图17示出根据实施例的神经网络部分依赖性重构规则的使用;
53.图18示出根据实施例的基于表示经量化神经网络参数的量化索引的重构规则的判定;
54.图19示出根据实施例的标识参数的使用;
55.图20示出根据实施例的神经网络的不同版本的编码/解码;
56.图21示出根据实施例的神经网络的两个版本的增量编码,其中所述两个版本的不同之处在于其权重和/或偏差;
57.图22示出根据实施例的神经网络的两个版本的替代增量编码,其中所述两个版本的不同之处在于其神经元或者神经元互连数目;
58.图23示出根据实施例的使用补偿神经网络部分的神经网络的不同版本的编码;
59.图24a示出根据实施例的具有补充数据的数据流的实施例;
60.图24b示出根据实施例的具有补充数据的数据流的替代实施例;和
61.图25示出具有控制数据部分的序列的数据流的实施例。
具体实施方式
62.即使具有相同或者等效功能性的相同或者等效的一个或多个元件出现于不同图中,以下描述中仍通过相同或者等效的参考编号来表示所述一个或多个元件。
63.在以下描述中,阐述多个细节以提供对本发明的实施例的更透彻解释。然而,本领域技术人员将显而易见,可在无这些特定细节的情况下实践本发明的实施例。在其他情况下,以方块图形式而非详细地示出公知结构和设备以便避免混淆本发明的实施例。此外,除非另外特定地指出,否则可将下文中所描述的不同实施例的特征彼此组合。
64.本技术的实施例的以下描述开始于本技术的实施例的简要介绍和概述,以便解释其优点和其如何达成这些优点。
65.已发现,在诸如在关于nn压缩的进行中的mpeg活动中开发的nn的经编码表示的当前活动中,将表示多个层的参数张量的模型位流分离成较小子位流(亦即,层位流)可以是有益的,所述子位流含有单独层的参数张量的经编码表示。当在容器格式的上下文中或者在特征化nn的层的并行解码/执行的应用情境中需要存储/加载此类模型位流时,此分开通常可以是有帮助的。
66.在下文中,描述各种示例,所述示例可有助于达成神经网络nn的有效压缩和/或改善对表示nn的数据的访问,并且因此导致nn的有效传输/更新。
67.为了易于理解本技术的以下示例,本说明书开始于呈现适合其的可供建置本技术的随后概述示例的可能编码器和解码器。
68.图1示出根据deepcabac的编码/解码管线的简图示例且说明此压缩方案的内部操作。首先,神经元14、20和/或18之间(例如,前置神经元141至143与中间神经元201和202之间)的连接22(例如,连接221至226)的权重32(例如,权重321至326)形成为张量,所述张量在示例中示出为矩阵30(图1中的步骤1)。举例而言,在图1的步骤1中,与神经网络10nn的第一层相关联的权重32形成为矩阵30。根据图1中所示的实施例,矩阵30的列与前置神经元141至143相关联,并且矩阵30的行与中间神经元201和202相关联,但显然,所形成的矩阵可替代地表示所说明矩阵30的逆。
69.接着,按照例如行优先次序(从左向右,从上而下)的特定扫描次序例如使用上下文自适应性算术编码600编码(例如,量化和熵编码)每一nn参数,例如权重32,如步骤2和3中所示。如下文将更详细地概述,也有可能使用不同扫描次序,亦即,编码次序。步骤2和3由编码器40(亦即,用于编码的装置)执行。解码器50(亦即,用于解码的装置)在反向处理次序步骤中遵循相同处理程序。亦即,其首先解码经编码值的整数表示的列表,如步骤4中所示,并且接着将列表重新塑形成其张量表示30',如步骤5中所示。最后,将张量30'载入至网络架构10'中,亦即,经重构nn,如步骤6中所示。经重构张量30'包括经重构nn参数,亦即,经解码nn参数32'。
70.图1中所示的nn 10仅为具有少数神经元14、20和18的简单nn。在下文中,神经元也可理解为节点、元件、模型元件或者维度。此外,附图标记10可指示机器学习(ml)预测器,或者换言之,诸如神经网络的机器学习模型。
71.参看图2,更详细地描述神经网络。特别是,图2示出ml预测器10,所述预测器包括具有输入节点或者元件14的输入接口12和具有输出节点或者元件18的输出接口16。输入节点/元件14接收输入数据。换言之,将输入数据施加至输入节点/元件上。举例而言,输入节点/元件接收图像,其中例如每一元件14与图像的一像素相关联。替代地,施加至元件14上的输入数据可以是信号,诸如一维信号,诸如音频信号、传感器信号或者其类似物。甚至替代地,输入数据可表示某一数据集,诸如医疗档案数据或者其类似物。举例而言,输入元件14的数目可以是任何数目且取决于输入数据的类型。输出节点18的数目可以是一个,如图1中所示,或者大于一个,如图2中所示。每一输出节点或者元件18可与某推断或者预测任务相关联。特别是,在将ml预测器10应用至施加至ml预测器10的输入接口12上的某一输入上后,ml预测器10在输出接口16处输出推断或者预测结果,其中在每一输出节点18处得到的激活(亦即,激活值)可指示例如对关于输入数据的某一问题的回复,诸如输入数据是否具有某一特性或者输入数据具有某一特性的可能性多大,诸如已输入的图像是否含有某一对
象,诸如汽车、人员、相位或者其类似物。
72.迄今为止,施加至输入接口上的输入也可解译为激活,亦即,施加至每一输入节点或者元件14上的激活。
73.在输入节点14与输出节点18之间,ml预测器10包括其他元件或者节点20,所述元件或者节点经由连接22而连接至前置节点以便从这些前置节点接收激活,并且经由一个或多个其他连接24而连接至后继节点以便将节点20的激活(亦即,激活值)转递至后继节点。
74.前置节点可以是ml预测器10的其他内部节点20,经由所述内部节点,示例性地描绘于图2中的中间节点20间接地连接至输入节点14,可直接为输入节点14,如图1中所示,并且后继节点可以是ml预测器10的其他中间节点,经由所述中间节点,示例性地示出的中间节点20连接至输出接口或者输出节点,或者可直接为输出节点28,如图1中所示。
75.ml预测器10的输入节点14、输出节点18和内部节点20可相关联于或者归属于ml预测器10的某些层,但ml预测器10的分层结构化为可选的且应用本技术的实施例的ml预测器不限于此类分层网络。就ml预测器10的示例性所示中间节点20而言,所述中间节点通过将激活(亦即,激活值)从前置节点经由连接24朝向输出接口16转递至后继节点而有助于ml预测器10的推断或者预测任务,所述激活是经由连接22从输入接口12接收。在此情况下,节点或者元件20基于输入节点22处的激活(亦即,激活值)计算其经由连接24朝向后继节点转递的激活,亦即,激活值,并且所述计算涉及计算加权和,亦即,针对每一连接22具有加数的总和,所述加权和是从相应前置节点接收到的输入(亦即,其激活)与权重之间的乘积,所述权重与连接相应前置节点和中间节点20的连接22相关联。应注意,替代地或者更一般而言,通过的方式映射函数m
ij
(x)将激活x经由连接24从节点或者元件i 20朝向后继节点j转递。因此,每一连接22以及24可具有与其相关联的某一权重,或者替代地,映射函数m
ij
的结果。视情况,可能在计算由节点20朝向某一后继节点输出的激活中涉及其他参数。为了判定ml预测器10的部分的相关性得分,可使用在已完成对输入接口12处的某一输入的某一预测或者推断任务之后在输出节点18处得到的激活,或者感兴趣的预定义或者感兴趣的输出激活。每一输出节点18处的此激活用作相关性得分判定的开始点,并且相关性朝向输入接口12反向传播。特别是,在ml预测器10的诸如节点20的每一节点处,相关性得分诸如在节点20的情况下经由连接22朝向前置节点分散,以与相关联于每一前置节点的前述乘积成比例的方式分散,并且经由加权求和促成诸如节点20的当前节点的激活,当前节点的激活待反向传播。亦即,可通过将诸如节点20的某一节点的相关性乘以因子来计算从该节点反向传播至其某一前置节点的相关性分率,所述因子取决于从该前置节点接收到的激活乘以已用以促成相应节点的前述总和的权重除以一值的比率,所述值取决于前置节点的激活与已促成待反向传播相关性的当前节点的加权和的权重之间的所有乘积的总和。
76.以上文所描述的方式,ml预测器10的部分的相关性得分例如基于如在由ml预测器执行的一个或多个推断中显现的这些部分的激活而判定。如上文所论述,判定此相关性得分的“部分”为预测器10的节点或者元件,其中再次应注意,ml预测器10不限于任何分层ml网络,使得例如,元件20例如可以是如在由预测器10执行的推断或者预测期间计算的中间值的任何计算。举例而言,以上文所论述的方式,通过将元件或者节点20从其后继节点/元件接收的入端口相关性消息聚合或者求和来计算此节点或者元件20的相关性得分,所述后继节点/元件又以上文关于节点20代表性地概述的方式分散其相关性得分。
77.如关于图2所描述的ml预测器10(亦即,nn)可使用关于图1所描述的编码器40编码到数据流45中,并且可使用关于图1所描述的解码器50从数据流45重构/解码。
78.下文所描述的特征和/或功能性可实施于关于图1所描述的压缩方案中,并且可与如关于图1和图2所描述的nn相关。
79.1参数张量序列化
80.存在可受益于位流的逐子层处理的应用。举例而言,存在适应可用客户端计算能力的nn,其方式为层被结构化为独立子集(例如,分离地训练的基线部分和进阶部分),并且客户端另外可决定仅执行基线层子集或者进阶层子集(tao,2018年)。另一示例为特征化数据通道特定操作的nn,例如可以以并行方式,例如每颜色通道分离地执行操作的图像处理nn的层(chollet,2016年)。
81.出于以上目的,参看图3,层的参数张量30的序列化1001或者1002例如在熵编码之前需要位串421或者422,从应用的视角,所述位串可易于分成有意义的连续子集431至433或者441和442。这可包括每通道1001或者每样本1002的所有nn参数(例如,权重32)的分组或者基线部分相对于进阶部分的神经元的分组。这些位串可随后经熵编码以形成具有函数关系的子层位流。
82.如图4中所示,序列化参数102可被编码到数据流45中/从所述数据流中解码。序列化参数可指示在nn参数32的编码之前或者在编码时nn参数32如何分组。序列化参数102可指示参数张量30的nn参数32如何序列化至位流中,以使得能够将nn参数编码到数据流45中。
83.在一个实施例中,在位流(亦即,数据流45)的参数集部分110中,在层的范围内指示序列化信息,亦即,序列化参数102,参见例如图12、图14a、图14b或者图24b。
84.另一实施例将参数张量30的维度341和342(参见图1以及图7中的编码次序1061)作为序列化参数102用信号通知。此信息在以下情况中可以是有用的:其中应以相应方式将参数的经解码列表分组/组织于例如内存中,以便允许高效执行,例如,如图3中针对在参数矩阵(亦即,参数张量30)的项(亦即,权重32)与样本1002和颜色通道1001之间具有明确关联的示例性图像处理nn所说明。图3示出两个不同序列化模式1001和1002以及所得子层43和44的示例性说明。
85.在另一实施例中,如图4中所示,位流(亦即,数据流45)指定编码器40在编码时遍历例如层、神经元、张量的nn参数32的次序104,使得解码器50可在解码时相应地重构nn参数32,关于编码器40和解码器50的描述,参见图1。亦即,可在不同应用情境中应用nn参数32的不同扫描次序301、302。
86.举例而言,沿着不同维度编码参数可能有益于所得压缩性能,这是因为熵编码器可能够较佳地捕获所述参数间的依赖性。在另一示例中,可能需要根据某些应用特定准则将参数分组,亦即,所述参数与输入数据的何部分相关或者所述参数是否可联合地执行,使得可并行地解码/推断所述参数。另一示例为根据通用矩阵矩阵(gemm)乘积扫描次序来编码参数,所述扫描次序支持在执行点积运算时对经解码参数的高效内存分配(andrew kerr,2017年)。
87.另一示例是关于数据的编码器侧选择排列,例如由图7中的编码次序1064所说明,例如以便达成例如待编码的nn参数32的能量压紧且随后根据所得次序104处理/序列化/编
码所得排列数据。因此,所述排列可将nn参数32分类使得所述参数沿着编码次序104稳定地增加或者使得所述参数沿着编码次序稳定地减小。
88.图5示出例如用于图像和/或视频分析应用的单输出通道卷积层的示例。彩色图像具有多个通道,通常每一颜色通道一个彩色图像,诸如红色、绿色和蓝色。从数据视角,该情形意谓作为输入提供至模型的单个图像实际上为三个图像。
89.张量30a可应用于输入数据12且以恒定步长在如窗口的输入上扫描。张量30a可理解为滤波器。张量30a可跨越输入数据12从左向右移动且在每一遍次之后跳至下一较低行。可选的所谓边框间距(padding)判定张量30a在碰到输入矩阵的边缘时应如何运作。张量30a对于其视场中的每一点都具有nn参数32,并且其从当前视场中的像素值以及这些权重计算例如结果矩阵。此结果矩阵的大小取决于张量30a的大小(内核大小)、边框间距且尤其取决于步长。输入图像具有3个通道(例如,深度为3),则应用于该图像的张量30a例如也具有3个通道(例如,深度为3)。无关于输入12的深度和张量30a的深度,使用产生单个值的点积运算将张量30a应用于输入12。
90.在默认情况下,deepcabac将任何给定张量30a转换成其相应矩阵30b形式,并且以行优先次序1041(亦即,从左向右和从上而下)将nn参数32编码(3)至数据流45中,如图5中所示。但如关于图7将描述,其他编码次序104/106可有利于达成高度压缩。
91.图6示出完全连接层的示例。完全连接层或者密集层是正常的神经网络结构,其中所有神经元连接至所有输入12(亦即,前置节点)和所有输出16'(亦即,后继节点)。张量30表示对应nn层且张量30包括nn参数32。nn参数32根据编码次序104被编码到数据流中。如关于图7将描述,某些编码次序104/106可有利于达成高度压缩。
92.描述现返回至图4,以使得能够对nn参数32的序列化进行一般描述。关于图4所描述的概念可适用于单输出通道卷积层(参见图5)和完全连接层(参见图6)两者。
93.如图4中所示,本技术的实施例a1是关于一种数据流45(ds),所述数据流具有编码到其中的神经网络(nn)的表示。所述数据流包括序列化参数102,所述序列化参数指示定义神经网络的神经元互连的nn参数32被编码到数据流45中的编码次序104。
94.根据实施例za1,一种用于将神经网络的表示编码到ds 45中的装置被配置为向数据流45提供序列化参数102,所述序列化参数指示定义神经网络的神经元互连的nn参数32被编码到数据流45中的编码次序104。
95.根据实施例xa1,一种用于从ds 45解码神经网络的表示的装置被配置为:从数据流45解码序列化参数102,所述序列化参数指示定义神经网络的神经元互连的nn参数32被编码到例如数据流45中的编码次序104;以及使用编码次序104将从ds 45串行地解码的nn参数32分配给神经元互连。
96.图4示出nn层的不同表示,所述nn层具有与其相关联的nn参数32。根据一实施例,二维张量301(亦即,矩阵)或者三维张量302可表示对应nn层。
97.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者以类似方式,特征和/或功能性也可以是根据实施例za1的装置或者根据实施例xa1的装置的特征和/或功能性。
98.根据先前实施例a1的ds 45的实施例a2,使用上下文自适应性算术编码600将nn参数32编码到ds 45中,参见例如图1和图8。因此,根据实施例za1的装置可被配置为通过使用
上下文自适应性算术编码600来编码nn参数32,并且根据实施例xa1的装置可被配置为通过使用上下文自适应性算术解码来解码nn参数32。
99.根据实施例a1或者a2的ds 45的实施例a3,数据流45被结构化为一个或多个可单独访问部分200,如图8或者以下图中的一个中所示,每一可单独访问部分200表示神经网络的对应nn层210,其中序列化参数102指示定义预定nn层210内的神经网络的神经元互连的nn参数32被编码到数据流45中的编码次序104。
100.根据任何先前实施例a1至a3的ds 45的实施例a4,序列化参数102为n元参数,所述n元参数指示n个编码次序的集合108中的编码次序104,如例如图7中所示。
101.根据实施例a4的ds 45的实施例a4a,n个编码次序的集合108包括
102.第一1061预定编码次序,其不同之处在于预定编码次序104遍历张量30的维度(例如,x维度、y维度和/或z维度)的次序,所述张量描述nn的预定nn层;和/或
103.第二1062预定编码次序,其不同之处在于为nn的可扩展编码起见,预定编码次序104遍历nn的预定nn层的次数107;和/或
104.第三1063预定编码次序,其不同之处在于预定编码次序104遍历nn的nn层210的次序;和/或
105.和/或
106.第四1064预定编码次序,其不同之处在于遍历nn的nn层的神经元20的次序。
107.举例而言,第一1061预定编码次序彼此之间的不同之处在于,在编码nn参数32时如何遍历张量30的单独维度。举例而言,编码次序1041与编码次序1042的不同之处在于,预定编码次序1041以行优先次序遍历张量30,亦即,从左向右遍历一行,从上而下一行接着一行,并且预定编码次序1042以列优先次序遍历张量30,亦即,从上而下遍历一列,从左向右一列接着一列。类似地,第一1061预定编码次序的不同之处可在于预定编码次序104遍历三维张量30的维度的次序。
108.第二1062预定编码次序的不同之处在于遍历例如由张量/矩阵30表示的nn层的频繁程度。举例而言,可根据预定编码次序104将nn层遍历两次,由此nn层的基线部分和进阶部分可被编码到数据流45中/从所述数据流中解码。待根据预定编码次序遍历nn层的次数107定义被编码到数据流中的nn层的版本的数目。因此,在序列化参数102指示遍历nn层至少两次的编码次序的情况下,解码器可被配置为基于其处理能力而决定可解码nn层的哪一版本且解码对应于所选nn层版本的nn参数32。
109.第三1063预定编码次序定义使用与nn 10的一个或多个其他nn层210不同的预定编码次序或者相同的编码次序将与nn 10的不同nn层2101和2102相关联的nn参数编码到数据流45中。
110.第四1064预定编码次序可包括预定编码次序1043,所述预定编码次序以对角交错方式从左上方nn参数321至右下方nn参数32
12
遍历表示对应nn层的张量/矩阵30。
111.根据任何先前实施例a1至a4a的ds 45的实施例a4a,序列化参数102指示排列,编码次序104使用所述排列相对于默认次序排列nn层的神经元。换言之,序列化参数102指示排列,并且在使用排列时,编码次序104相对于默认次序排列nn层的神经元。如针对数据流450所说明的在图7中所示的第四1064预定编码次序(行优先次序)可表示默认次序。其他数据流45包括相对于默认次序使用排列编码到其中的nn参数。
112.根据实施例a4a的ds 45的实施例a4b,排列以使得nn参数32沿着编码次序104单调地增加或者沿着编码次序104单调地减小的方式,对nn层210的神经元进行排序。
113.根据实施例a4a的ds 45的实施例a4c,以使得在可由序列化参数102用信号通知的预定编码次序104之中,用于将nn参数32编码到数据流45中的位速率对于由序列化参数102指示的排列为最低的方式,对nn层210的神经元进行排序。
114.根据任何先前实施例a1至a4c的ds 45的实施例a5,nn参数32包括权重和偏差。
115.根据任何先前实施例a1至a5的ds 45的实施例a6,数据流45被结构化为可单独访问子部分43/44,每一子部分43/44表示对应nn部分,例如神经网络10的nn层210的一部分,使得根据编码次序104完全遍历每一子部分43/44,之后根据编码次序104遍历后续子部分43/44。表示nn层的张量30的行、列或者通道可被编码到可单独访问子部分43/44中。与同一nn层相关联的不同可单独访问子部分43/44可包括与同一nn层相关联的不同神经元14/18/20或者神经元互连22/24。可单独访问子部分43/44可表示张量30的行、列或者通道。可单独访问子部分43/44例如示出于图3中。替代地,如图21至图23中所示,可单独访问子部分43/44可表示nn层的不同版本,如nn层的基线区段和nn层的进阶区段。
116.根据实施例a3和a6中的任一个的ds 45的实施例a7,使用上下文自适应性算术编码600和在任何可单独访问部分200或者子部分43/44的开始202处使用上下文初始化,将nn参数32编码到ds 45中,参见例如图8。
117.根据实施例a3和a6中的任一个的ds 45的实施例a8,数据流45包括:开始码242,每一可单独访问部分200或者子部分240在所述开始码(242)处开始;和/或指针220/244,其指向每一可单独访问部分200或者子部分240的开始;和/或每一可单独访问部分200或者子部分240的指针数据流长度,亦即,指示每一可单独访问部分200或者子部分240的数据流长度246的参数,所述指针数据流长度用于在解析ds 45时跳过相应可单独访问部分200或者子部分240,如图11至图14中所示。
118.另一实施例识别位流(亦即,数据流45)中的经解码参数32'的位尺寸和数值表示。举例而言,所述实施例可指定可用8位带正负号固定点格式表示经解码参数32'。此指定在例如也有可能以8位固定点表示表示激活值的应用中可以是非常有用的,这是因为接着推断可由于固定点算术而更高效地执行。
119.根据先前实施例a1至a8中的任一个的ds 45的实施例a9,其进一步包括数值计算表示参数120,所述数值计算表示参数指示将在使用nn进行推断时表示nn参数32的数值表示和位尺寸,参见例如图9。
120.图9示出数据流45的实施例b1,所述数据流具有编码到其中的神经网络的表示,数据流45包括数值计算表示参数120,所述数值计算表示参数指示将在使用nn进行推断时表示被编码到ds 45中的nn的nn参数32的数值表示(例如,在浮点表示、固定点表示之中)和位尺寸。
121.对应实施例zb1是关于一种用于将神经网络的表示编码到ds 45中的装置,其中所述装置被配置为向数据流45提供数值计算表示参数120,所述数值计算表示参数指示将在使用nn进行推断时表示被编码到ds 45中的nn的nn参数32的(例如,在浮点表示、固定点表示之中的)数值表示和位尺寸。
122.对应实施例xb1是关于一种用于从ds 45解码神经网络的表示的装置,其中所述装
置被配置为从数据流45解码数值计算表示参数120,所述数值计算表示参数指示将在使用nn进行推断时表示被编码到ds 45中的nn的nn参数32的数值表示(例如,在浮点表示、固定点表示之中)和位尺寸,并且视情况使用所述数值表示和位尺寸以用于表示从ds 45解码的nn参数32。
123.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者以类似方式,特征和/或功能性也可以是根据实施例zb1的装置或者根据实施例xb1的装置的特征和/或功能性。
124.另一实施例在层内用信号通知参数类型。在大多数情况下,层包括两种类型的参数32:权重和偏差。当例如不同类型的依赖性已在编码时用于每种类型的参数时或者如果希望并行解码等,这些两种类型的参数之间的区别在解码之前可以是有益的。
125.根据先前实施例a1至b1中的任一个的ds 45的实施例a10,其中数据流45被结构化为可单独访问子部分43/44,每一子部分43/44表示神经网络的对应nn部分,例如nn层的一部分,使得根据编码次序104完全遍历每一子部分43/44,之后根据编码次序104遍历后续子部分43/44,其中数据流45针对预定子部分包括类型参数,所述类型参数表明被编码到预定子部分中的nn参数32的参数类型。
126.根据实施例a10的ds的实施例a10a,其中所述类型参数至少在nn权重与nn偏差之间进行区分。
127.最后,另一实施例用信号通知含有nn参数32的层210的类型,例如卷积或者完全连接。此信息可以是有用的,以便例如理解参数张量30的维度的含义。举例而言,2d卷积层的权重参数可表达为4d张量30,其中第一维度指定滤波器的数目,第二维度指定通道的数目且其余维度指定滤波器的2d空间维度。此外,可在编码时以不同方式处理不同层210,以便较佳地捕获数据中的依赖性且导致较高编码效率(例如,通过使用上下文模型的不同集合或者模式),这可以是解码器在解码之前知道的关键信息。
128.根据先前实施例a1至a10a中的任一个的ds 45的实施例a11,其中数据流45被结构化为一个或多个可单独访问部分200,每一部分200表示神经网络10的对应nn层210,其中数据流45针对预定nn层进一步包括nn层类型参数130,所述参数指示nn的预定nn层的nn层类型,参见例如图10。
129.图10示出数据流45的实施例c1,所述数据流具有编码到其中的神经网络的表示,其中数据流45被结构化为一个或多个可单独访问部分200,每一部分表示神经网络的对应nn层210,其中数据流45针对预定nn层进一步包括nn层类型参数130,所述参数指示nn的预定nn层的nn层类型。
130.对应实施例zc1是关于一种用于将神经网络的表示编码到ds 45中的装置,使得数据流45被结构化为一个或多个可单独访问部分200,每一部分200表示神经网络的对应nn层210,其中所述装置被配置为针对预定nn层210而向数据流45提供nn层类型参数130,所述参数指示nn的预定nn层210的nn层类型。
131.对应实施例xc1是关于一种用于从ds 45解码神经网络的表示的装置,其中数据流45被结构化为一个或多个可单独访问部分200,每一部分200表示神经网络的对应nn层210,其中所述装置被配置为针对预定nn层210而从数据流45解码nn层类型参数,所述参数指示nn的预定nn层210的nn层类型。
132.根据实施例a11和c1中的任一个的ds 45的实施例a12,其中nn层类型参数130至少在完全连接层类型(参见nn层2101)与卷积层类型(参见nn层210n)之间进行区分。因此,根据实施例zc1的装置可编码nn层类型参数130以在两个层类型之间进行区分,并且根据实施例xb1的装置可解码nn层类型参数130以在两个层类型之间进行区分。
133.2 位流随机访问
134.2.1 层位流随机访问
135.在许多应用中,访问位流的子集例如对于并行化层处理或者将位流封装成相应容器格式是至关重要的。目前先进技术中用于允许此访问的一种方式例如是在每一层210的参数张量30之后打破编码依赖性和在层位流(例如,可单独访问部分200)中的每一个之前将开始码插入至模型位流(亦即,数据流45)中。特别是,模型位流中的开始码并非分离层位流的适当方法,这是因为开始码的检测需要从开始便在潜在地极大量开始码上对整个模型位流进行解析。
136.本发明的此方面是关于用于以比目前先进技术更佳的方式结构化参数张量30的经编码模型位流的其他技术,并且允许更容易、更快且更充分地访问位流部分(例如,层位流),以便促进需要nn的并行或者部分解码和执行的应用。
137.在本发明的一个实施例中,在模型的范围内,经由以字节或者位移(例如,相对于编码单元的开始的字节位移)的形式的位流位置在位流的参数集/头部部分47中指示模型位流(亦即,数据流45)内的单独层位流(例如,可单独访问部分200)。图11和图12说明实施例。图12示出从通过指针220所指示的位流位置或者位移的层访问。另外,每一可单独访问部分200视情况包括层参数集110,前述参数中的一个或多个可被编码到所述层参数集110中且被解码。
138.根据实施例先前实施例a1至a12中的任一个的ds 45的a13,数据流45被结构化为可单独访问部分200,每一部分200表示神经网络的对应nn层部分,例如一个或多个nn层、或者nn层的部分,其中数据流45针对一个或多个预定可单独访问部分200中的每一个包括指针220,所述指针指向每一可单独访问部分200的开始,例如,在可单独访问部分表示对应nn层的情况下,参见图11或者图12,并且在可单独访问部分表示预定nn层的部分(例如,可单独访问子部分240)的情况下,参见图13至图15。在下文中,指针220也可用附图标记244表示。
139.对于每一nn层,与相应nn层相关联的可单独访问部分200可表示相应nn层的对应nn部分。在此情况下,此处和在以下描述中,这些可单独访问部分200也可理解为可单独访问子部分240。
140.图11示出数据流45的更一般实施例d1,所述数据流具有编码到其中的神经网络的表示,其中数据流45被结构化为可单独访问部分200,每一可单独访问部分200表示神经网络的对应nn部分,例如一个或多个nn层、或者nn层的部分,其中数据流45针对一个或多个预定可单独访问部分200中的每一个包括指针220,所述指针指向相应的预定可单独访问部分200的开始。
141.根据一实施例,指针220指示相对于第一可单独访问部分2001的开始的位移。指向第一可单独访问部分2001的第一指针2201可指示无位移。因此,有可能省略第一指针2201。替代地,指针220例如指示相对于参数集的末尾的位移,指针220被编码到参数集中。
142.对应实施例zd1是关于一种用于将神经网络的表示编码到ds 45中的装置,使得数据流45被结构化为一个或多个可单独访问部分200,每一部分200表示神经网络的对应nn部分,例如一个或多个nn层、或者nn层的部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,向数据流45提供指针220,所述指针指向相应的预定可单独访问部分200的开始。
143.对应实施例xd1是关于一种用于从ds 45解码神经网络的表示的装置,其中数据流45被结构化为一个或多个可单独访问部分200,每一部分200表示神经网络的对应nn部分,例如一个或多个nn层、或者nn层的部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,从数据流45解码指向相应的预定可单独访问部分200的开始的指针220,并且例如使用指针220中的一个或多个用于访问ds 45。
144.根据先前实施例a13和d1中的任一个的ds 45的实施例a14,其中每一可单独访问部分200表示
145.神经网络的对应nn层210,或者
146.nn的nn层210的nn部分,例如,参见例如图3或者图21至23中的一个。
147.2.2子层位流随机访问
148.如在章节1中所提及,存在可依赖于以特定可配置方式将层210内的参数张量30分组的应用,这是因为所述分组可有益于部分或者并行地解码/处理/推断所述张量。因此,逐子层访问层位流(例如,可单独访问部分200)可有助于并行地访问所期望的数据或者排除不必要的数据部分。
149.在一个实施例中,以子层粒度重设层位流内的编码依赖性,亦即,重设deepcabac机率状态。
150.在本发明的另一实施例中,在层或者模型的范围内,经由以字节的形式的位流位置(例如,指针244或者偏移,例如指针244)在位流(亦即,数据流45)的参数集部分110中指示层位流(亦即,可单独访问部分200)内的单独子层位流(例如,可单独访问子部分240)。图13、图14a和图15说明实施例。图14a说明经由相对位流位置或者位移的子层访问,亦即,对可单独访问子部分240的访问。另外,例如,可单独访问部分200也可由层级别上的指针220访问。举例而言,层级别上的指针220被编码到ds 45的模型参数集47(亦即,头部)中。指针220指向可单独访问部分200,所述可单独访问部分表示包括nn的nn层的对应nn部分。举例而言,子层级别上的指针244被编码到可单独访问部分200的层参数集110中,所述可单独访问部分表示包括nn的nn层的对应nn部分。指针244指向可单独访问子部分240的开始,所述可单独访问子部分表示包括nn的nn层的部分的对应nn部分。
151.根据一实施例,层级别上的指针220指示相对于第一可单独访问部分2001的开始的位移。子层级别上的指针244指示某一可单独访问部分200的可单独访问子部分240相对于某一可单独访问部分200的第一可单独访问子部分240的开始的位移。
152.根据一实施例,指针220/244指示相对于含有数个单元的聚合单元的字节位移。指针220/244可指示从聚合单元的开始至聚合单元的有效载荷中的单元的开始的字节位移。
153.在本发明的另一实施例中,经由位流(亦即,数据流45)中的可检测开始码242指示层位流(亦即,可单独访问部分200)内的单独子层位流(亦即,可单独访问子部分240),所述指示将是足够的,这是因为每层的数据量通常小于将由整个模型位流(亦即,数据流45)内
的开始码242检测层的情况。图13和图14b说明实施例。图14b说明在子层级别上(亦即,对于每一可单独访问子部分240)使用开始码242,并且在层级别上(亦即,对于每一可单独访问部分200)使用位流位置(亦即,指针220)。
154.在另一实施例中,在位流45的参数集/头部部分47中或者在可单独访问部分200的参数集部分110中指示(子)层位流部分(可单独访问子部分240)的游程长度(亦即,数据流长度246),以便出于将所述部分(亦即,可单独访问子部分240)封装于适当容器中的目的而促进截取所述部分。如图13中所说明,可单独访问子部分240的数据流长度246可由数据流长度参数指示。
155.图13示出数据流45的实施例e1,所述数据流具有编码到其中的神经网络的表示,其中数据流45被结构化为一个或多个可单独访问部分200,每一可单独访问部分200表示神经网络的对应nn层,其中数据流45在例如可单独访问部分200的预定部分内被进一步结构化为可单独访问子部分240,每一子部分240表示神经网络的相应nn层的对应nn部分,其中数据流45针对一个或多个预定可单独访问子部分240中的每一个包括
156.开始码242,相应预定可单独访问子部分240在所述开始码242处开始,和/或
157.指针244,其指向相应预定可单独访问子部分240的开始,和/或
158.数据流长度参数,其指示相应预定可单独访问子部分240的数据流长度246以用于在解析ds 45时跳过相应预定可单独访问子部分240。
159.本文中所描述的可单独访问子部分240可具有相同或者类似的特征和或者功能性,如关于单独可访问子部分43/44所描述。
160.同一预定部分内的可单独访问子部分240可能都具有相同的数据流长度246,由此数据流长度参数有可能指示一个数据流长度246,所述数据流长度246适用于同一预定部分内的每一可单独访问子部分240。数据流长度参数可指示整个数据流45的所有可单独访问子部分240的数据流长度246,或者数据流长度参数可针对每一可单独访问部分200而指示相应可单独访问部分200的所有可单独访问子部分240的数据流长度246。一个或多个数据流长度参数可编码到数据流45的头部部分47中或者相应可单独访问部分200的参数集部分110中。
161.对应实施例ze1是关于一种用于将神经网络的表示编码到ds 45中的装置,使得数据流45被结构化为一个或多个可单独访问部分200,每一可单独访问部分200表示神经网络的对应nn层,并且使得数据流45在例如可单独访问部分200的预定部分内被进一步结构化为可单独访问子部分240,每一子部分240表示神经网络的相应nn层的对应nn部分,其中所述装置被配置为针对一个或多个预定可单独访问子部分240中的每一个,向数据流45提供
162.开始码242,相应预定可单独访问子部分240在所述开始码242处开始,和/或
163.指针244,其指向相应预定可单独访问子部分240的开始,和/或
164.数据流长度参数,其指示相应预定可单独访问子部分240的数据流长度246以用于在解析ds 45时跳过相应预定可单独访问子部分240。
165.对应的另外的实施例xe1是关于一种用于从ds 45解码神经网络的表示的装置,其中数据流45被结构化为一个或多个可单独访问部分200,每一可单独访问部分200表示神经网络的对应nn层,并且其中数据流45在例如可单独访问部分200的预定部分内被进一步结构化为可单独访问子部分240,每一子部分240表示神经网络的相应nn层的对应nn部分,其
中所述装置被配置为针对一个或多个预定可单独访问子部分240中的每一个,从数据流45解码
166.开始码242,相应预定可单独访问子部分240在所述开始码242处开始,和/或
167.指针244,其指向相应预定可单独访问子部分240的开始,和/或
168.数据流长度参数,其指示相应预定可单独访问子部分240的数据流长度246以用于在解析ds 45时跳过相应预定可单独访问子部分240
169.且例如针对一个或多个预定可单独访问子部分240而将例如开始码242、指针244和/或数据流长度参数的此信息用于访问ds 45。
170.根据实施例e1的ds 45的实施例e2,数据流45具有通过使用上下文自适应性算术编码和通过在每一可单独访问部分200和每一可单独访问子部分240的开始处使用上下文初始化而编码到其中的神经网络的表示,参见例如图8。
171.根据实施例e3,实施例e1或者实施例e2的数据流45是根据本文中的任何其他实施例。且显然,实施例ze1和xe1的装置也可通过本文中所描述的任何其他特征和/或功能性完成。
172.2.3位流随机访问类型
173.取决于由选定序列化类型(例如,图3中所示的序列化类型1001和1002)产生的(子)层240的类型,各种处理选项可用,所述选项也判定客户端是否将访问和将如何访问(子)层位流240。举例而言,当所选序列化1001导致子层240为图像颜色通道特定的且此允许解码/推断的逐数据通道并行化时,此应在位流45中向客户端指示。另一示例为从基线nn子集导出初步结果,所述子集可独立于特定层/模型的进阶nn子集而解码/推断,如关于图20至图23所描述。
174.在一个实施例中,在整个模型(一个或者多个层)的范围内,位流45中的参数集/头部47指示(子)层随机访问的类型,以便允许客户端作出适当决策。图15示出通过序列化判定的随机访问2521和2522的两个示例性类型。随机访问2521和2522的所说明类型可表示用于表示对应nn层的可单独访问部分200的可能处理选项。第一处理选项2521可指示逐数据通道访问可单独访问部分2001的nn参数,并且第二处理选项2522可指示逐样本访问可单独访问部分2002内的nn参数。
175.图16示出数据流45的一般实施例f1,所述数据流具有编码到其中的神经网络的表示,其中数据流45被结构化为可单独访问部分200,每一可单独访问部分200表示神经网络的对应nn部分,例如包括一个或多个nn层、或者nn层的部分,其中数据流45针对一个或多个预定可单独访问部分200中的每一个包括处理选项参数250,所述处理选项参数指示在使用nn进行推断时必须使用或者可以可选地使用的一个或多个处理选项252。
176.对应实施例zf1是关于一种用于将神经网络的表示编码到ds 45中的装置,使得数据流45被结构化为可单独访问部分200,每一可单独访问部分200表示神经网络的对应nn部分,例如包括一个或多个nn层、或者nn层的部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,向数据流45提供处理选项参数250,所述处理选项参数指示在使用nn进行推断时必须使用或者可以可选地使用的一个或多个处理选项252。
177.对应的另外的实施例xf1是关于一种用于从ds 45解码神经网络的表示的装置,其中数据流45被结构化为可单独访问部分200,每一可单独访问部分200表示神经网络的对应
nn部分,例如包括一个或多个nn层、或者nn层的部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,从数据流45解码处理选项参数250,所述处理选项参数指示在使用nn进行推断时必须使用或者可以可选地使用的一个或多个处理选项252,例如基于关于待访问、跳过和/或解码一个或多个预定可单独访问部分中的哪一个的处理选项而解码。基于一个或多个处理选项252,所述装置可被配置为决定可如何访问、跳过和/或解码可单独访问部分或者可单独访问子部分和/或可访问、跳过和/或解码哪些可单独访问部分或者可单独访问子部分。
178.根据实施例f1的ds 45的实施例f2,处理选项参数250指示预定处理选项的集合中的一个或多个可用处理选项252,所述预定处理选项包括
179.相应的预定可单独访问部分200的并行处理能力;和/或
180.相应的预定可单独访问部分200的逐样本并行处理能力2521;和/或
181.相应的预定可单独访问部分200的逐通道并行处理能力2522;和/或
182.相应的预定可单独访问部分200的逐分类类别并行处理能力;和/或
183.由相应的预定可单独访问部分表示的nn部分(例如,nn层)对于计算结果的依赖性,所述计算结果从ds的另一可单独访问部分获取,所述另一可单独访问部分与同一nn部分相关、但属于nn的版本中的另一版本,所述版本以分层方式编码到ds中,如图20至图23中所示。
184.根据实施例zf1的装置可被配置为编码处理选项参数250,使得处理选项参数250指向预定处理选项的集合中的一个或多个处理选项,并且根据实施例xf1的装置可被配置为解码处理选项参数250,所述处理选项参数指示预定处理选项的集合中的一个或多个处理选项。
185.3量化参数的信号通知
186.被编码到单独可访问部分200中的例如nn参数32的层有效载荷或者被编码到单独可访问子部分240中的例如nn参数32的子层有效载荷可含有不同类型的参数32,所述参数表示如(例如)权重、偏差等的有理数。
187.在图18中所示的优选实施例中,一个此类型的参数在位流中作为整数值被用信号通知,使得通过将重构规则270应用于这些值(亦即,量化索引32”)导出经重构值(亦即,经重构nn参数32'),所述重构规则涉及重构参数。举例而言,此重构规则270可由将每一整数值(亦即,量化索引32”)乘以相关联的量化步长263组成。在此情况下,量化步长263为重构参数。
188.在优选实施例中,在模型参数集47中或者在层参数集110中或者在子层头部300中用信号通知重构参数。
189.在另一优选实施例中,在模型参数集中用信号通知重构参数的第一集合,并且视情况,在层参数集中用信号通知重构参数的第二集合,并且视情况,在子层头部中用信号通知重构参数的第三集合。如果存在,则重构参数的第二集合取决于重构参数的第一集合。如果存在,则重构参数的第三集合可取决于重构参数的第一和/或第二集合。关于图17更详细地描述此实施例。
190.举例而言,在重构参数的第一集合中用信号通知有理数s,亦即,预定基,在重构参数的第二集合中用信号通知第一整数x1,亦即,第一指数值,并且在重构参数的第三集合中
用信号通知第二整数x2,亦即,第二指数值。使用以下重构规则重构作为整数值wn编码到位流中的层或者子层有效载荷的相关联参数。将每一整数值wn乘以量化步长δ,所述量化步长计算为
191.在优选实施例中,s=2-0.5

192.有理数s可例如编码为浮点值。可使用固定或者可变数目个位用信号通知第一整数x1和第二整数x2,以便最小化总信号通知成本。举例而言,如果层的子层的量化步长类似,则相关联值x2将为相当小的整数,并且仅允许少数位用于用信号通知所述值可以是高效的。
193.在如图18中所示的优选实施例中,重构参数可由码本组成,亦即,量化索引至重构级别映射,其为整数至有理数字的映射的列表。使用以下重构规则270重构作为整数值wn编码到位流45中的层或者子层有效载荷的相关联参数。在码本中查找每一整数值wn。选择相关联整数匹配wn的一个映射,并且相关联有理数为经重构值,亦即,经重构nn参数32'。
194.在另一优选实施例中,重构参数的第一和/或第二和/或第三集合各自由根据先前优选实施例的码本组成。然而,为了应用重构规则,通过产生重构参数的第一和/或第二和/或第三集合的码本的映射的集合联集来导出一个联合码本。如果存在具有相同整数的映射,则重构参数的第三集合的码本的映射优先于重构参数的第二集合的码本的映射,并且重构参数的第二集合的码本的映射优先于重构参数的第一集合的码本的映射。
195.图17示出数据流45的实施例g1,所述数据流具有编码到其中的表示神经网络10的nn参数32,其中nn参数32以被量化260到至量化索引上的方式编码到ds 45中,并且其中nn参数32被编码到ds 45中使得nn 10的不同nn部分中的nn参数32以不同方式被量化260,并且ds 45针对nn部分中的每一个指示重构规则270,所述重构规则用于反量化与相应nn部分相关的nn参数。
196.举例而言,nn的每一nn部分可包括nn的节点之间的互连,并且不同nn部分可包括nn的节点之间的不同互连。
197.根据一实施例,nn部分包括nn 10的nn层210和/或nn的预定nn层被细分成的层子部分43。如图17中所示,nn的一个层210内的所有nn参数32可表示nn的nn部分,其中nn 10的第一层2101内的nn参数32以与nn 10的第二层2102内的nn参数32不同的方式被量化260。有可能将nn层2101内的nn参数32分组成不同层子部分43,亦即,可单独访问子部分,其中每一组可表示nn部分。因此,可用不同方式量化260nn层2101的不同层子部分43。
198.对应实施例zg1是关于一种用于将表示神经网络10的nn参数32编码到ds 45中的装置,使得nn参数32以被量化260至量化索引上的方式编码到ds 45中,并且nn参数32被编码到ds 45中使得nn 10的不同nn部分中的nn参数32以不同方式被量化260,其中所述装置被配置为针对nn部分中的每一个,向ds 45指示重构规则,所述重构规则用于反量化与相应nn部分相关的nn参数32。视情况,所述装置也可执行量化260。
199.对应的另外的实施例xg1是关于一种用于从ds 45解码表示神经网络10的nn参数32的装置,其中nn参数32以被量化260至量化索引上的方式编码到ds 45中,并且nn参数32被编码到ds 45中使得nn 10的不同nn部分中的nn参数32以不同方式被量化260,其中所述装置被配置为针对nn部分中的每一个,从数据流45解码重构规则270,所述重构规则用于反量化与相应nn部分相关的nn参数32。视情况,所述装置也可使用重构规则270(亦即,与当前
经反量化nn参数32所属的nn部分相关的重构规则)执行反量化。对于nn部分中的每一个,所述装置可被配置为使用与相应nn部分相关的经解码重构规则270来反量化相应nn部分的nn参数。
200.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者以类似方式,特征和/或功能性也可以是根据实施例zg1的装置或者根据实施例xg1的装置的特征和/或功能性。
201.如上文已提及,根据实施例g1的ds 45的实施例g2,nn部分包括nn 10的nn层210和/或nn 10的预定nn层210被细分成的层部分。
202.根据实施例g1或者g2的ds 45的实施例g3,ds 45具有以相对于第二重构规则2702被增量编码的方式编码到其中的第一重构规则2701,所述第一重构规则用于反量化与第一nn部分相关的nn参数32,所述第二重构规则用于反量化280与第二nn部分相关的nn参数32。替代地,如图17中所示,以相对于第二重构规则270a2被增量编码的方式将第一重构规则270a1编码到ds 45中,所述第一重构规则用于反量化与第一nn部分(亦即,层子部分431)相关的nn参数32,所述第二重构规则与第二nn部分(亦即,层子部分432)相关。也有可能以相对于第二重构规则2702被增量编码的方式将第一重构规则270a1编码到ds 45中,所述第一重构规则用于反量化与第一nn部分(亦即,层子部分431)相关的nn参数32,所述第二重构规则与第二nn部分(亦即,nn层2102)相关。
203.在以下实施例中,第一重构规则将表示为2701且第二重构规则将表示为2702以避免混淆实施例,但显然,也在以下实施例中,第一重构规则和/或第二重构规则可对应于表示nn层210的层子部分43的nn部分,如上文所描述。
204.根据实施例g3的ds 45的实施例g4,
205.ds 45包括用于指示第一重构规则2701的第一指数值和用于指示第二重构规则2702的第二指数值,
206.第一重构规则2701由第一量化步长和第一指数定义,所述第一量化步长由预定基的取幂定义,所述第一指数由第一指数值定义,并且
207.第二重构规则2702由第二量化步长和第二指数定义,所述第二量化步长由预定基的取幂定义,所述第二指数由第一指数值与第二指数值的总和定义。
208.根据实施例g4的ds的实施例g4a,ds 45进一步指示预定基。
209.根据任何先前实施例g1至g3的ds的实施例g4',
210.ds 45包括用于指示第一重构规则2701的第一指数值和用于指示第二重构规则2702的第二指数值,所述第一重构规则用于反量化与第一nn部分相关的nn参数32,所述第二重构规则用于反量化与第二nn部分相关的nn参数32,
211.第一重构规则2701由第一量化步长和第一指数定义,所述第一量化步长由预定基的取幂定义,所述第一指数由第一指数值与预定指数值的总和定义,并且
212.第二重构规则由第二量化步长和第二指数定义,所述第二量化步长由预定基的取幂定义,所述第二指数由第二指数值与预定指数值的总和定义。
213.根据实施例g4'的ds的实施例g4'a,ds进一步指示预定基。
214.根据实施例g4'a的ds的实施例g4'b,ds在nn范围(亦即,与整个nn相关)内指示预定基。
215.根据任何先前实施例g4'至g4'b的ds的实施例g4'c,其中ds 45进一步指示预定指数值。
216.根据实施例g4'c的ds 45的实施例g4'd,ds 45在nn层范围内(亦即,针对预定nn层210,第一nn部分431和第二nn部分432为所述预定nn层的部分)指示预定指数值。
217.根据任何先前实施例g4'c和g4'd的ds的实施例g4'e,ds 45进一步指示预定基,且,ds 45在与ds 45指示预定基的范围相比更精细的范围内指示预定指数值。
218.根据先前实施例g4至g4a或者g4'至g4'e中的任一个的ds 45的实施例g4f,ds 45具有以非整数格式(例如,浮点或者有理数或者固定点数)编码到其中的预定基,以及以整数格式(例如,带正负号整数)的第一和第二指数值。视情况,预定指数值也可用整数格式编码到ds 45中。
219.根据实施例g3至g4f中的任一个的ds的实施例g5,ds 45包括用于指示第一重构规则2701的第一参数集和用于指示第二重构规则2702的第二参数集,所述第一参数集定义第一量化索引至重构级别映射,所述第二参数集定义第二量化索引至重构级别映射,其中
220.第一重构规则2701由第一量化索引至重构级别映射定义,并且
221.第二重构规则2702通过第二量化索引至重构级别映射以预定方式对第一量化索引至重构级别映射的扩展定义。
222.根据实施例g3至g5中的任一个的ds 45的实施例g5',ds 45包括用于指示第一重构规则2701的第一参数集和用于指示第二重构规则2702的第二参数集,所述第一参数集定义第一量化索引至重构级别映射,所述第二参数集定义第二量化索引至重构级别映射,其中
223.第一重构规则2701通过第一量化索引至重构级别映射以预定方式对预定量化索引至重构级别映射的扩展定义,并且
224.第二重构规则2702通过第二量化索引至重构级别映射以预定方式对预定量化索引至重构级别映射的扩展定义。
225.根据实施例g5'的ds 45的实施例g5'a,其中ds 45进一步指示预定量化索引至重构级别映射。
226.根据实施例g5'a的ds 45的实施例g5'b,其中ds 45在nn范围(亦即,与整个nn相关)内或者在nn层范围(亦即,针对预定nn层210,第一nn部分431和第二nn部分432为所述预定nn层的部分)内指示预定量化索引至重构级别映射。在nn部分表示nn层的情况下,例如对于nn部分中的每一个,相应nn部分表示对应nn层,其中例如第一nn部分表示与第二nn部分不同的nn层,可在nn范围内指示预定量化索引至重构级别映射。然而,在nn部分中的至少一些表示层子部分43的情况下,也有可能在nn范围内指示预定量化索引至重构级别映射。额外地或者替代地,在nn部分表示层子部分43的情况下,可在nn层范围内指示预定量化索引至重构级别映射。
227.根据先前实施例g5或者g5'至g5'b中的任一个的ds 45的实施例g5c,根据预定方式,
228.如果存在,则通过根据对待扩展的量化索引至重构级别映射进行扩展的量化索引至重构级别映射将每一索引值(亦即,量化索引32”)映射到第二重构级别上的映射,来替换根据所述待扩展的量化索引至重构级别将相应索引值映射到第一重构级别上的映射,和/

229.对于如下所述的任何索引值,采用从相应索引值到对应的重构级别的映射:其中,针对所述任何索引值,根据所述待扩展的量化索引至重构级别映射,不定义相应索引值应当被映射到的重构级别,并且根据对待扩展的量化索引至重构级别映射进行扩展的量化索引至重构级别映射,所述任何索引值被映射到对应的重构级别,和/或
230.对于如下所述的任何索引值,采用从相应索引值到对应的重构级别的映射:其中,针对所述任何索引值,根据对待扩展的量化索引至重构级别映射进行扩展的量化索引至重构级别映射,不定义相应索引值应当被映射到的重构级别,并且根据所述待扩展的量化索引至重构级别映射,所述任何索引值被映射到对应的重构级别。
231.根据任何先前实施例g1至g5c的ds 45的图18中所示的实施例g6,ds 45包括用于指示例如表示nn层或者包括nn层的层子部分的预定nn部分的重构规则270的以下各项:
232.量化步长参数262,其指示量化步长263,以及
233.参数集264,其定义量化索引至重构级别映射265,
234.其中预定nn部分的重构规则270由以下各项定义:
235.用于预定索引间隔268内的量化索引32”的量化步长263,以及
236.用于预定索引间隔268外的量化索引32”的量化索引至重构级别映射265。
237.图18示出数据流45的实施例h1,所述数据流具有编码到其中的表示神经网络的nn参数32,
238.其中nn参数32以被量化260到量化索引32”上的方式编码到ds 45中,
239.其中ds 45包括用于指示用于反量化(280)nn参数(亦即,量化索引32”)的重构规则270的以下各项:
240.量化步长参数262,其指示量化步长263,以及
241.参数集264,其定义量化索引至重构级别映射265,
242.其中预定nn部分的重构规则270由以下各项定义:
243.用于预定索引间隔268内的量化索引32”的量化步长263,以及
244.用于预定索引间隔268外的量化索引32”的量化索引至重构级别映射265。
245.对应实施例zh1是关于一种用于将表示神经网络的nn参数32编码到ds 45中的装置,使得nn参数32以被量化260到量化索引32”上的方式编码到ds 45中,其中所述装置被配置为向ds 45提供用于指示用于反量化280nn参数32的重构规则270的以下各项:
246.量化步长参数262,其指示量化步长263,以及
247.参数集264,其定义量化索引至重构级别映射265,
248.其中预定nn部分的重构规则270由以下各项定义:
249.用于预定索引间隔268内的量化索引32”的量化步长263,以及
250.用于预定索引间隔268外的量化索引32”的量化索引至重构级别映射265。
251.对应的另外的实施例xh1是关于一种用于从ds 45解码表示神经网络的nn参数32的装置,其中nn参数32以经量化至量化索引32”上的方式编码到ds 45中,其中所述装置被配置为通过从ds 45解码以下各项而从ds 45导出用于反量化280nn参数(亦即,量化索引32”)的重构规则270:
252.量化步长参数262,其指示量化步长263,以及
253.参数集264,其定义量化索引至重构级别映射265,
254.其中预定nn部分的重构规则270由以下各项定义:
255.用于预定索引间隔268内的量化索引32”的量化步长263,以及
256.用于预定索引间隔268外的量化索引32”的量化索引至重构级别映射265。
257.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者以类似方式,特征和/或功能性也可以是根据实施例zh1的装置或者根据实施例xh1的装置的特征和/或功能性。
258.根据先前实施例g6或者h1中的任一个的ds 45的实施例g7,预定索引间隔268包括零。
259.根据实施例g7的ds 45的实施例g8,预定索引间隔268延长直至预定量值阈值y,并且超过预定量值阈值y的量化索引32”表示转义码,所述转义码用信号通知量化索引至重构级别映射265将用于反量化280。
260.根据先前实施例g6至g8中的任一个的ds 45的实施例g9,参数集264通过重构级别的列表的方式来定义量化索引至重构级别映射265,所述重构级别与预定索引间隔268外的量化索引32”相关联。
261.根据先前实施例g1至g9中的任一个的ds 45的实施例g10,nn部分包括nn的nn层的一个或多个子部分和/或nn的一个或多个nn层。图18示出包括nn的一个nn层的nn部分的示例。包括nn参数32的nn参数张量30可表示对应nn层。
262.根据先前实施例g1至g10中的任一个的ds 45的实施例g11,数据流45被结构化为可单独访问部分,每一可单独访问部分具有编码到其中的用于对应nn部分的nn参数32,参见例如图8或者图10至图17中的一个。
263.根据g11的ds 45的实施例g12,使用上下文自适应性算术编码和通过在每一可单独访问部分的开始处使用上下文初始化来编码可单独访问部分,如(例如)图8中所示。
264.根据任何先前实施例g11或者g12的ds 45的实施例g13,数据流45针对每一可单独访问部分而包括以下各项,如(例如)图11至图15中的一个中所示:
265.开始码242,相应可单独访问部分在所述开始码242处开始,和/或
266.指针220/244,其指向相应可单独访问部分的开始,和/或
267.数据流长度参数246,其指示相应可单独访问部分的数据流长度以用于在解析ds45时跳过相应可单独访问部分。
268.根据任何先前实施例g11至g13的ds 45的实施例g14,数据流45针对nn部分中的每一个,在以下各项中指示用于反量化280与相应nn部分相关的nn参数32的重构规则270:
269.与nn整体上相关的ds 45的主要头部部分47,
270.与nn层210相关的ds 45的nn层相关头部部分110,相应nn部分为所述nn层的部分,或者
271.与相应nn部分相关的ds 45的nn部分特定头部部分300,相应nn部分为nn层210的部分,例如在nn部分表示层子部分(亦即,可单独访问子部分43/44/240)的情况下。
272.根据任何先前实施例g11至g14的ds 45的实施例g15,ds 45是根据任何先前实施例a1至f2。
273.4取决于参数哈希校验的标识符
274.在许多客户端单独地进一步训练网络且将相对nn更新发送回至中央实体的诸如分布式学习的情境中,经由版本管理方案识别网络是重要的。由此,中央实体可识别建置nn更新所基于的nn。
275.在诸如可扩展nn的其他使用情况下,可执行nn的基线部分,例如以便产生初步结果,之后进行完整或者增强的nn以接收完整结果。可以是如下情况:增强的nn使用基线nn的略微不同的版本,例如具有经更新参数张量。当以差分方式编码这些经更新参数张量时,亦即,作为先前经编码参数张量的更新,有必要例如使用标识参数310识别建置以差分方式编码的更新所基于的参数张量,如图19中所示。
276.另外,存在nn的完整性最重要的使用情况,亦即,可易于辨识参数张量的传输错误或者非自主改变。当可基于nn特性进行验证时,标识符(亦即,标识参数310)将使操作具有更强的错误稳固性。
277.然而,经由整个容器数据格式的校验和或者哈希校验进行目前先进技术版本管理,并且可能不容易在不同容器中匹配等效nn。然而,所涉及的客户端可使用不同框架/容器。此外,不可能在未完全重构nn的情况下仅识别/验证nn子集(层、子层)。
278.因此,作为本发明的部分,在一个实施例中,标识符(亦即,标识参数310)由每一实体(亦即,模型、层、子层)携载以便允许每一实体进行以下操作:
279.·
校验身份标识,和/或
280.·
参考或者被参考,和/或
281.·
校验完整性。
282.在另一实施例中,使用诸如md5或者sha5的哈希算法或者诸如crc或者校验和的错误检测码从参数张量导出标识符。
283.在另一实施例中,使用较低级别实体的标识符导出某一实体的一个此类标识符,例如将从构成子层的标识符导出层标识符,将从构成层的标识符导出模型标识符。
284.图19示出数据流45的实施例i1,所述数据流具有编码到其中的神经网络的表示,其中数据流45被结构化为可单独访问部分200,每一部分200表示神经网络的对应nn部分,例如包括一个或多个nn层、或者nn层的部分,其中数据流45针对一个或多个预定可单独访问部分200中的每一个包括标识参数310,所述标识参数用于识别相应的预定可单独访问部分200。
285.对应实施例zi1是关于一种用于将神经网络的表示编码到ds 45中的装置,使得数据流45被结构化为可单独访问部分200,每一部分200表示神经网络的对应nn部分,例如包括一个或多个nn层、或者nn层的部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,向数据流45提供标识参数310,所述标识参数用于识别相应的预定可单独访问部分200。
286.对应的另外的实施例xi1是关于一种用于从ds 45解码神经网络的表示的装置,其中数据流45被结构化为可单独访问部分200,每一部分200表示神经网络的对应nn部分,例如包括一个或多个nn层、或者nn层的部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,从数据流45解码标识参数310,所述标识参数用于识别相应的预定可单独访问部分200。
287.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者
以类似方式,特征和/或功能性也可以是根据实施例zi1的装置或者根据实施例xi1的装置的特征和/或功能性。
288.根据实施例i1的ds 45的实施例i2,标识参数310经由哈希函数或者错误检测码或者纠错码与相应的预定可单独访问部分200相关。
289.根据先前实施例i1和i2中的任一个的ds 45的实施例i3,其进一步包括用于识别多于一个预定可单独访问部分200的集合的较高级别标识参数。
290.根据i3的ds 45的实施例i4,较高级别标识参数经由哈希函数或者错误检测码或者纠错码与多于一个预定可单独访问部分200的标识参数310相关。
291.根据先前实施例i1至i4中的任一个的ds 45的实施例i5,使用上下文自适应性算术编码和通过在每一可单独访问部分的开始处使用上下文初始化来编码可单独访问部分200,如(例如)图8中所示。
292.根据先前实施例i1至i5中的任一个的ds 45的实施例i6,其中数据流45针对每一可单独访问部分200而包括以下各项,如(例如)图11至图15中的一个中所示:
293.开始码242,相应可单独访问部分200在所述开始码242处开始,和/或
294.指针220/244,其指向相应可单独访问部分200的开始,和/或
295.数据流长度参数246,其指示相应可单独访问部分200的数据流长度以用于在解析ds 45时跳过相应可单独访问部分200。
296.根据先前实施例i1至i6中的任一个的ds 45的实施例i7,nn部分包括nn的nn层的一个或多个子部分和/或nn的一个或多个nn层。
297.根据先前实施例i1至i7中的任一个的ds 45的实施例i8,ds 45是根据任何先前实施例a1至g15。
298.5可扩展nn位流
299.如先前所提及,一些应用依赖于:进一步结构化nn 10,例如,如图20至23中所示;将层210或者其组(亦即,子层43/44/240)分成基线区段(例如,nn 10的第二版本3301)和进阶区段3302(例如,nn 10的第一版本3302),使得客户端可匹配其处理能力或者可能够在处理更复杂的进阶nn之前首先对基线进行推断。在这些情况下,如描述于章节1至4中,能够以告知方式独立地分类、编码和访问nn层的相应子区段的参数张量30为有益的。
300.另外,在一些情况下,nn 10可通过以下操作分成基线变体和进阶变体:
301.·
减小层中的神经元的数目,例如需要较少操作,如图22中所示,和/或
302.·
权重的较粗略量化,例如允许较快重构,如图21中所示,和/或
303.·
不同训练,例如一般基线nn对比个人化进阶nn,如图23中所示,
304.·
等等。
305.图21示出nn和差分增量信号342的变体。说明基线版本(例如,nn的第二版本3301)和进阶版本(例如,nn的第一版本3302)。图21说明以上情况中的一个:从具有两个量化设置的原始nn的单个层(例如,表示对应层的参数张量30)产生两个层变体且产生相应增量信号342。基线版本3301与粗略量化相关联,并且进阶版本3302与精细量化相关联。进阶版本3302可相对于基线版本3301经增量编码。
306.图22示出初始nn的分离的其他变体。在图22中,例如在左侧示出nn分离的其他变体,指示将例如表示对应层的参数张量30的层分离成基线部分30a和进阶部分30b,亦即,进
阶部分30b扩展基线部分30a。为了推断进阶部分30b,需要对基线部分30a进行推断。在图22的右侧,示出进阶部分30b的中心部分由基线部分30a的更新组成,所述更新也可经增量编码,如图21中所说明。
307.在这些情况下,基线nn版本3301和进阶nn版本3302的nn参数32(例如,权重)具有明确依赖性,和/或nn的基线版本3301在某种程度上为nn的进阶版本3302的部分。
308.因此,就编码效率、处理额外负荷、并行化等而言,在nn规模或者层规模或者甚至子层规模上将进阶nn部分(亦即,nn的第一版本3302)的参数张量30b编码为基线nn版本(亦即,nn的第二版本3301)的参数张量30b的增量。
309.其他变体描绘于图23中,其中产生nn的进阶版本以通过在存在经有损压缩的基线nn变体的情况下进行训练来补偿对原始nn的压缩影响。进阶nn与基线nn并行地被推断,并且其nn参数(例如,权重)与基线nn连接至同一神经元。图23示出例如基于经有损编码基线nn变体而训练增强nn。
310.在一个实施例中,将(子)层位流(亦即,可单独访问部分200或者可单独访问子部分34/44/220)分成两个或更多个(子)层位流,第一(子)层位流表示(子)层的基线版本3301且第二(子)层位流为第一(子)层的进阶版本3302,等等,其中基线版本3301按位流次序在进阶版本3302之前。
311.在另一实施例中,(子)层位流经指示为含有位流内的另一(子)层的参数张量30的递增更新,例如包括增量参数张量(亦即,增量信号342)和/或参数张量的递增更新。
312.在另一实施例中,(子)层位流携载参考标识符,所述参考标识符参考具有匹配标识符的(子)层位流,前一(子)层位流含有用于后一(子)层位流的参数张量30的递增更新。
313.图20示出数据流45的实施例j1,所述数据流具有以分层方式编码到其中的神经网络10的表示,使得nn 10的不同版本330被编码到数据流45中,其中数据流45被结构化为一个或多个可单独访问部分200,每一部分200与神经网络10的对应版本330相关,其中数据流45具有被编码到第一部分2002中的nn 10的第一版本3302,所述第一版本
314.被相对于被编码到第二部分2001中的nn 10的第二版本3301进行增量编码340,和/或
315.以一个或多个补偿nn部分332的形式,所述一个或多个补偿nn部分332中的每一个将为了基于nn 10的第一版本3302进行推断而被,
316.除了被编码到第二部分2001中的nn 10的第二版本3301的对应nn部分334的执行以外额外地执行,并且
317.其中相应补偿nn部分332和对应nn部分334的输出336将被求和(338)。
318.根据一实施例,补偿nn部分332可包括如图21中所示的增量信号342或者如图22中所示的额外张量和增量信号,或者与对应nn部分334内的nn参数以不同方式训练的nn参数,例如,如图23中所示。
319.根据图23中所示的实施例,补偿nn部分332包括第二神经网络的nn部分的经量化nn参数,其中第二神经网络的nn部分与nn 10(亦即,第一nn)的对应nn部分334相关联。可训练第二神经网络使得补偿nn部分332可用以补偿对第一nn的对应nn部分334的压缩影响,例如量化误差。将相应补偿nn部分332和对应nn部分334的输出求和以重构对应于nn 10的第一版本3302的nn参数,从而允许基于nn 10的第一版本3302进行推断。
320.尽管上文论述的实施例主要集中于在一个数据流中提供nn 10的不同版本330,但也有可能在不同数据流中提供不同版本330。举例而言,不同版本330相对于较简单版本经增量编码到不同数据流中。因此,可使用单独的数据流(ds)。举例而言,首先,发送含有初始nn数据的ds,并且稍后发送含有经更新nn数据的ds。
321.对应实施例zj1是关于一种用于以分层方式将神经网络的表示编码到ds 45中的装置,使得nn 10的不同版本330被编码到数据流45中,并且使得数据流45被结构化为一个或多个可单独访问部分200,每一部分200与神经网络10的对应版本330相关,其中所述装置被配置为编码被编码到第一部分2002中的nn 10的第一版本3302,所述第一版本
322.被相对于被编码到第二部分2001中的nn 10的第二版本3301进行增量编码340,和/或
323.以一个或多个补偿nn部分332的形式,所述一个或多个补偿nn部分332中的每一个将为了基于nn 10的第一版本3302进行推断而被
324.除了被编码到第二部分2001中的nn 10的第二版本3301的对应nn部分334的执行以外额外地执行,并且
325.其中相应补偿nn部分332和对应nn部分334的输出336将被求和(338)。
326.对应的另外的实施例xj1是关于一种用于从ds 45解码神经网络10的表示的装置,所述表示以分层方式编码到所述ds中,使得nn 10的不同版本330被编码到数据流45中,并且使得数据流45被结构化为一个或多个可单独访问部分200,每一部分200与神经网络10的对应版本330相关,其中所述装置被配置为通过以下操作从第一部分2002解码经编码的nn 10的第一版本3302:
327.被相对于被编码到第二部分2001中的nn 10的第二版本3301进行增量编码340,和/或
328.从ds 45解码一个或多个补偿nn部分332,一个或多个补偿nn部分332中的每一个将为了基于nn 10的第一版本3302进行推断而被,
329.除了被编码到第二部分2001中的nn 10的第二版本3301的对应nn部分334的执行以外额外地执行,并且
330.其中相应的补偿nn部分332和对应的nn部分334的输出336将被求和(338)。
331.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者以类似方式,特征和/或功能性也可以是根据实施例zj1的装置或者根据实施例xj1的装置的特征和/或功能性。
332.根据实施例j1的数据流45的实施例j2,数据流45具有被编码到第一部分2001中的nn 10的第一版本3301,所述第一版本被依据以下各项相对于被编码到第二部分2002中的nn 10的第二版本3302进行增量编码340:
333.权重差值和/或偏差差值,亦即,相关联于nn 10的第一版本3301的nn参数与相关联于nn 10的第二版本3302的nn参数之间的差值,如(例如)图21中所示,和/或
334.额外的神经元或者神经元互连,如(例如)图22中所示。
335.根据任何先前实施例j1和j2的ds的实施例j3,使用上下文自适应性算术编码和在每一可单独访问部分200的开始处使用上下文初始化来编码可单独访问部分200,如(例如)图8中所示。
336.根据任何先前实施例j1至j3的ds的实施例j4,数据流45针对每一可单独访问部分200而包括以下各项,如(例如)图11至图15中的一个中所示:
337.开始码242,相应可单独访问部分200在所述开始码242处开始,和/或
338.指针220/244,其指向相应可单独访问部分200的开始,和/或
339.数据流长度参数,其指示相应可单独访问部分200的数据流长度246以用于在解析ds 45时跳过相应可单独访问部分200。
340.根据任何先前实施例j1至j4的ds 45的实施例j5,数据流45针对一个或多个预定可单独访问部分200中的每一个包括标识参数310,所述标识参数用于识别相应的预定可单独访问部分200,如(例如)图19中所示。
341.根据先前实施例j1至j5中的任一个的ds 45的实施例j6,ds 45是根据任何先前实施例a1至i8。
342.6增强数据
343.存在参数张量30伴有额外增强(或者辅助/补充)数据350的应用情境,如图24a和图24b中所示。此增强数据350对于nn的解码/重构/推断通常并非必需的,然而,从应用视角,其为必要的。举例而言,示例可以是关于以下各项的信息:每一参数32的相关性(sebastian lapuschkin,2019年),或者参数32的充分统计,诸如用信号通知每一参数32对扰动的稳健性之间隔或者方差的信息(christos louizos,2017年)。
344.此增强信息(亦即,补充数据350)可引入关于nn的参数张量30的大量数据,使得期望的是使用诸如deepcabac的方案编码增强数据350。然而,重要的是仅出于推断的目的将此数据标记为与nn的解码无关,使得不需要增强的客户端能够跳过数据的此部分。
345.在一个实施例中,增强数据350在额外(子)层增强位流(亦即,另外的可单独访问部分352)中携载,所述位流被编码而不依赖于(子)层比特流数据,例如不依赖于可单独访问部分200和/或可单独访问子部分240,但与相应(子)层位流穿插以形成模型位流,亦即,数据流45。图24a和图24b说明实施例。图24b说明增强位流352。
346.图24a和图24b示出数据流45的实施例k1,所述数据流具有编码到其中的神经网络的表示,其中数据流45被结构化为可单独访问部分200,每一部分200表示神经网络的对应nn部分,其中数据流45针对一个或多个预定可单独访问部分200中的每一个包括用于补充nn的表示的补充数据350,替代地,如图24b中所示,数据流45针对一个或多个预定可单独访问部分200而包括用于补充nn的表示的补充数据350。
347.对应实施例zk1是关于一种用于将神经网络的表示编码到ds 45中的装置,使得数据流45被结构化为可单独访问部分200,每一部分200表示神经网络的对应nn部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,向数据流45提供用于补充nn的表示的补充数据350。替代地,所述装置被配置为针对一个或多个预定可单独访问部分200而向数据流45提供用于补充nn的表示的补充数据350。
348.对应的另外的实施例xk1是关于一种用于从ds 45解码神经网络的表示的装置,其中数据流45被结构化为可单独访问部分200,每一部分200表示神经网络的对应nn部分,其中所述装置被配置为针对一个或多个预定可单独访问部分200中的每一个,从数据流45解码用于补充nn的表示的补充数据350。替代地,所述装置被配置为针对一个或多个预定可单独访问部分200而从数据流45解码用于补充nn的表示的补充数据350。
349.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者以类似方式,特征和/或功能性也可以是根据实施例zk1的装置或者根据实施例xk1的装置的特征和/或功能性。
350.根据实施例k1的数据流45的实施例k2,ds 45将补充数据350指示为对于基于nn的推断为非必需的。
351.根据任何先前实施例k1和k2的数据流45的实施例k3,数据流45针对一个或多个预定可单独访问部分200而具有被编码到另外的可单独访问部分352中的用于补充nn的表示的补充数据350,如图24b中所示,使得ds 45针对一个或多个预定可单独访问部分200,例如针对一个或多个预定可单独访问部分200中的每一个包括对应的另外的预定可单独访问部分352,所述对应的另外的预定可单独访问部分与相应的预定可单独访问部分200所对应的nn部分相关。
352.根据任何先前实施例k1至k3的ds 45的实施例k4,nn部分包括nn的一个或多个nn层和/或nn的预定nn层被细分成的层部分。根据图24b,例如,可单独访问部分2002和对应的另外的预定可单独访问部分352与包括一个或多个nn层的nn部分相关。
353.根据任何先前实施例k1至k4的ds 45的实施例k5,使用上下文自适应性算术编码和在每一可单独访问部分200的开始处使用上下文初始化来编码可单独访问部分200,如(例如)图8中所示。
354.根据任何先前实施例k1至k5的ds 45的实施例k6,数据流45针对每一可单独访问部分200而包括以下各项,如(例如)图11至图15中的一个中所示:
355.开始码242,相应可单独访问部分200在所述开始码242处开始,和/或
356.指针220/244,其指向相应可单独访问部分200的开始,和/或
357.数据流长度参数,其指示相应可单独访问部分200的数据流长度246以用于在解析ds 45时跳过相应可单独访问部分200。
358.根据任何先前实施例k1至k6的ds 45的实施例k7,补充数据350与以下各项相关:
359.nn参数的相关性得分,和/或
360.nn参数的扰动稳健性。
361.根据先前实施例k1至k7中的任一个的ds 45的实施例k8,ds 45是根据任何先前实施例a1至j6。
362.7经扩展控制数据
363.除不同访问功能性中的所描述功能性以外,不同应用和使用情境可能也需要经扩展分层控制数据结构,亦即,控制数据部分420的序列410。一方面,可从诸如tensorflow或者pytorch的特定框架内部使用经压缩nn表示(或者位流),在此情况下,仅需要最少的控制数据400来例如解码经deepcabac编码的参数张量。另一方面,解码器可能不知道框架的特定类型,在此情况下,需要额外控制数据400。因此,取决于使用情况和其对环境的了解,可能需要不同级别的控制数据400,如图25中所示。
364.图25示出用于压缩神经网络的分层控制数据(cd)结构,亦即,控制数据部分420的序列410,其中取决于使用环境,存在或者不存在不同cd级别,亦即,控制数据部分420,例如虚线框。在图25中,例如包括神经网络的表示500的经压缩位流可以是被细分成或者未被细分成子位流的以上模型位流类型中的任一个,例如包括网络的所有经压缩数据。
365.因此,如果具有解码器和编码器已知的类型和架构的特定网络(例如,tensorflow、pytorch、keras等)包括压缩nn技术,则仅需要经压缩nn位流。然而,如果解码器不知道任何编码器设置,则除了允许全网络重构以外,也需要控制数据的完整集合,亦即,控制数据部分420的完整序列410。
366.不同分层控制数据层(亦即,控制数据部分420)的示例为:
367.·
cd级别1:经压缩数据解码器控制信息。
368.·
cd级别2:来自相应框架(tensor flow、pytorch、keras)的特定语法元素
369.·
cd级别3:供用于不同框架中的架构间格式元素,诸如onnx(onnx=开放神经网络交换)
370.·
cd级别4:关于网络拓朴的信息
371.·
cd级别5:完整的网络参数信息(用于完全重构,而无需关于网络拓朴的任何知识)
372.因此,此实施例将描述n个级别(亦即,n个控制数据部分420)的分层控制数据结构,其中可能存在0至n级别以允许范围介于特定仅压缩核心数据使用直至完全独立的网络重构的不同使用模式。级别(亦即,控制数据部分420)可能甚至含有来自现有网络架构和框架的语法。
373.在另一实施例中,不同级别(亦即,控制数据部分420)可能需要不同粒度的关于神经网络的信息。举例而言,级别结构可按以下方式构成:
374.·
cd级别1:需要关于网络的参数的信息。
375.例如,类型、维度等。
376.·
cd级别2:需要关于网络的层的信息。
377.例如,类型、标识符等。
378.·
cd级别3:需要关于网络的拓朴的信息。
379.例如,层之间的连接性。
380.·
cd级别4:需要关于神经网络模型的信息。
381.例如,版本、训练参数、性能等。
382.·
cd级别5:需要关于其曾被训练和验证的数据集的信息
383.关于例如具有1000个标示类别的227
×
227分辨率输入自然图像等。
384.图25示出数据流45的实施例l1,所述数据流具有编码到其中的神经网络的表示500,其中数据流45包括被结构化为控制数据部分420的序列410的分层控制数据400,其中控制数据部分420沿着控制数据部分420的序列410以增加的细节提供关于nn的信息。相比第一控制数据部分4201的第一分层控制数据4001,第二控制数据部分4202的第二分层控制数据4002可包括具有更多细节的信息。
385.根据一实施例,控制数据部分420可表示不同单元,所述单元可含有额外拓朴信息。
386.对应实施例zl1是关于一种用于将神经网络的表示500编码到ds 45中的装置,其中所述装置被配置为向数据流45提供被结构化为控制数据部分420的序列410的分层控制数据400,其中控制数据部分420沿着控制数据部分420的序列410以增加的细节提供关于nn的信息。
387.对应的另外的实施例xl1是关于一种用于从ds 45解码神经网络的表示500的装置,其中所述装置被配置为从数据流45解码被结构化为控制数据部分420的序列410的分层控制数据400,其中控制数据部分420沿着控制数据部分420的序列410以增加的细节提供关于nn的信息。
388.在下文中,在数据流45的上下文中描述不同特征和/或功能性,但以相同方式或者以类似方式,特征和/或功能性也可以是根据实施例zl1的装置或者根据实施例xl1的装置的特征和/或功能性。
389.根据实施例l1的数据流45的实施例l2,控制数据部分420中的至少一些控制数据部分提供关于nn的信息,所述信息是部分冗余的。
390.根据实施例l1或者l2的数据流45的实施例l3,第一控制数据部分4201通过指示暗示默认设置的默认nn类型的方式来提供关于nn的信息,并且第二控制数据部分4202包括用于指示默认设置中的每一个的参数。
391.根据先前实施例l1至l3中的任一个的ds 45的实施例l4,ds 45是根据任何先前实施例a1至k8。
392.实施例x1是关于一种用于解码根据任何先前实施例的数据流45的装置,其被配置为从例如根据以上实施例xa1至xl1中的任一个的数据流45导出nn 10,例如被进一步配置为编码/解码使得ds 45是根据先前实施例中的任一个。
393.此装置例如
394.搜索开始码242,和/或
395.使用数据流长度45参数跳过可单独访问部分200,和/或
396.使用指针220/244以在可单独访问部分200的开始处恢复解析数据流45,和/或
397.根据编码次序104使经解码nn参数32'与神经元14、18、20或者神经元互连22/24相关联,和/或
398.执行上下文自适应性算术解码和上下文初始化,和/或
399.执行反量化/值重构280,和/或
400.执行指数的求和以计算量化步长263,和/或
401.响应于离开预定索引间隔268的量化索引32”而在量化索引至重构级别映射265中执行查找,诸如假定转义码,和/或
402.对某一可单独访问部分200执行哈希校验或者将错误检测/校正码应用至所述可单独访问部分上,并且比较结果与其对应标识参数310,以便校验可单独访问部分200的正确性,和/或
403.通过执行将权重差值和/或偏差差值添加至底层nn版本330和/或将额外的神经元14、18、20或者神经元互连22/24添加至底层nn版本330或者执行一个或多个补偿nn部分与对应nn部分的联合执行连同执行其输出的求和,重构nn 10的某一版本330,和/或
404.依序读取控制数据部分420且一旦当前读取的控制数据部分420呈现装置已知的参数状态便停止读取,并且以足以符合预定细节程度的细节提供信息,亦即,分层控制数据400。
405.实施例y1是关于一种用于使用nn 10执行推断的装置,其包括:用于解码根据实施例x1的数据流45以便从数据流45导出nn10的装置,和被配置为基于nn 10执行推断的处理
器。
406.实施例z1是关于一种用于编码根据任何先前实施例(例如,根据以上实施例za1至zl1中的任一个)的数据流45的装置,例如被进一步配置为编码/解码使得ds 45是根据先前实施例中的任一个。
407.举例而言,此装置选择编码次序104以找到用于最佳压缩效率的最佳次序。
408.实施例u是关于由实施例xa1至xl1或者za1至zl1的装置中的任一个执行的方法。
409.实施例w是关于一种计算机程序,其在由计算机执行时使计算机执行u实施例的方法。
410.实施方案替代例:
411.尽管已在装置的上下文中描述一些方面,但显然,这些方面也表示对应方法的描述,其中块或者设备对应于方法步骤或者方法步骤的特征。类似地,方法步骤的上下文中所描述的方面也表示对应装置的对应块或者项目或者特征的描述。可由(或者使用)比如微处理器、可编程计算机或者电子电路的硬件设备执行方法步骤中的一些或者全部。在一些实施例中,可由此装置执行最重要方法步骤中的一个或多个。
412.取决于某些实施要求,本发明的实施例可用硬件或者软件实施。可使用数字存储介质来执行所述实施,所述介质例如软盘、dvd、蓝光(blu-ray)、cd、rom、prom、eprom、eeprom或者闪存,所述介质上存储有电子可读控制信号,所述电子可读控制信号与可编程计算机系统协作(或者能够协作)使得执行相应方法。因此,数字存储介质可以是计算机可读的。
413.根据本发明的一些实施例包括具有电子可读控制信号的数据载体,所述控制信号能够与可编程计算机系统协作,使得执行本文中所描述的方法中的一个。
414.一般而言,本发明的实施例可实施为具有程序代码的计算机程序产品,当计算机程序产品在计算机上运行时,所述程序代码操作性地用于执行所述方法中的一个。所述程序代码可例如存储于机器可读载体上。
415.其他实施例包括存储于机器可读载体上的用于执行本文中所描述的方法中的一个的计算机程序。
416.换言之,本发明方法的实施例因此为计算机程序,所述计算机程序具有用于当计算机程序在计算机上运行时执行本文中所描述的方法中的一个的程序代码。
417.因此,本发明方法的另一实施例为数据载体(或者数字存储介质,或者计算机可读介质),所述数据载体包括记录于其上的用于执行本文中所描述的方法中的一个的计算机程序。数据载体、数字存储介质或者记录介质通常为有形的和/或非暂时性的。
418.因此,本发明方法的另一实施例为表示用于执行本文中所描述的方法中的一个的计算机程序的数据流或者信号序列。数据流或者信号序列可例如被配置为经由数据通讯连接(例如,经由因特网)而传送。
419.另一实施例包括被配置或者被调适为执行本文中所描述的方法中的一个的处理构件,例如计算机或者可编程逻辑器件。
420.另一实施例包括计算机,所述计算机具有安装于其上的用于执行本文中所描述的方法中的一个的计算机程序。
421.根据本发明的另一实施例包括被配置为将用于执行本文中所描述的方法中的一
个的计算机程序传送(例如,以电子方式或者光学方式)至接收器的装置或者系统。举例而言,接收器可以是计算机、移动设备、内存设备或者其类似物。所述装置或者系统可例如包括用于将计算机程序传送至接收器的文件服务器。
422.在一些实施例中,可编程逻辑器件(例如,场可编程门阵列)可用以执行本文中所描述的方法的功能性中的一些或者全部。在一些实施例中,场可编程门阵列可与微处理器协作,以便执行本文中所描述的方法中的一个。一般而言,所述方法优选由任何硬件设备执行。
423.本文中所描述的装置可使用硬件设备或者使用计算机或者使用硬件设备与计算机的组合来实施。
424.本文中所描述的装置或者本文中所描述的装置的任何元件可至少部分地以硬件和/或以软件来实施。
425.本文中所描述的方法可使用硬件设备或者使用计算机或者使用硬件设备与计算机的组合来实施。
426.本文中所描述的方法或者本文中所描述的装置的任何元件可至少部分地由硬件和/或由软件执行。
427.上述实施例仅说明本发明的原理。应理解,本文中所描述的配置和细节的修改和变化对于本领域技术人员将为显而易见的。因此,其仅意欲由接下来的申请专利范围的范围限制,而非由借助于本文中实施例的描述解释所呈现的特定细节限制。
428.8参考文献
429.andrew kerr,d.m.(2017,5).retrieved from https://devblogs.nvidia.com/cutlass-linear-algebra-cuda/
430.chollet,f.(2016).xception:deep learning with depthwise separable convolutions.retrieved from https://arxiv.org/abs/1610.02357
431.christos louizos,k.u.(2017).bayesian compression for deep learning.nips.
432.sebastian lapuschkin,s.w.-r.(2019).unmasking clever hans predictors and assessing what machines really learn.nature comminications.
433.tao,k.c.(2018).once for all:a two-flow convolutional neural network for visual tracking.ieee transactions on circuits and systems for video technology,3377-3386.
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献