神经网络的前向计算方法、装置及计算机可读存储介质.pdf
《神经网络的前向计算方法、装置及计算机可读存储介质.pdf》由会员分享,可在线阅读,更多相关《神经网络的前向计算方法、装置及计算机可读存储介质.pdf(25页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911294777.2 (22)申请日 2019.12.16 (71)申请人 腾讯科技 (深圳) 有限公司 地址 518000 广东省深圳市南山区高新区 科技中一路腾讯大厦35层 (72)发明人 刘文然陈洪锐李昊沅陈其锋 李峰 (74)专利代理机构 北京市立方律师事务所 11330 代理人 张筱宁 (51)Int.Cl. G06N 3/063(2006.01) G06N 3/08(2006.01) G06T 1/20(2006.01) G06T 1/60(2006.01) 。
2、G06T 7/40(2017.01) G06T 7/90(2017.01) (54)发明名称 神经网络的前向计算方法、 装置及计算机可 读存储介质 (57)摘要 本申请提供了一种神经网络的前向计算方 法、 装置及计算机可读存储介质, 神经网络中的 至少一个数据处理层进行数据处理的方法包括: 获取数据处理层的输入数据和权重数据; 将输入 数据采用第一纹理存储结构进行存储, 得到第一 纹理数据, 将权重数据采用第二纹理存储结构进 行存储, 得到第二纹理数据; 基于第一纹理数据 和第二纹理数据进行数据处理层的数据处理, 得 到数据处理层的输出数据。 对于神经网络的至少 一个数据处理层, 将输入数据和。
3、权重数据分别存 储在对应的纹理存储结构中, 由于纹理存储结构 索引简单方便, 且数据存储量大, 节省了数据处 理层在进行数据处理过程中读取和存储数据的 时间, 使得神经网络的前向计算效率大大提高。 权利要求书3页 说明书17页 附图4页 CN 111091188 A 2020.05.01 CN 111091188 A 1.一种神经网络的前向计算方法, 其特征在于, 所述神经网络中的至少一个数据处理 层进行数据处理的方法包括: 获取所述数据处理层的输入数据和权重数据; 将所述输入数据采用第一纹理存储结构进行存储, 得到第一纹理数据, 将所述权重数 据采用第二纹理存储结构进行存储, 得到第二纹理数。
4、据; 基于所述第一纹理数据和所述第二纹理数据进行所述数据处理层的数据处理, 得到所 述数据处理层的输出数据。 2.根据权利要求1所述的方法, 其特征在于, 所述第一纹理存储结构或所述第二纹理存 储结构为以下任一种: 红、 绿、 蓝、 透明RGBA四通道三维3D纹理存储结构; RGB三通道3D纹理存储结构; RGBA四通道2D纹理存储结构; RGB三通道2D纹理存储结构。 3.根据权利要求2所述的方法, 其特征在于, 所述第一纹理数据和所述第二纹理数据中 分别包含有至少一个纹素, 且每个纹素的通道数为三或四, 所述至少一个纹素由对应的输 入数据或权重数据按照通道数依序排列而成。 4.根据权利要求。
5、3所述的方法, 其特征在于, 所述将所述输入数据采用第一纹理存储结 构进行存储, 得到第一纹理数据, 包括: 获取所述输入数据的像素宽度、 像素高度以及通道数; 基于所述输入数据的像素宽度、 像素高度、 通道数以及所述第一纹理存储结构的数据 存储方式, 确定所述第一纹理存储结构的第一纹理存储结构参数; 将所述输入数据根据所述第一纹理存储结构参数进行存储, 得到所述第一纹理数据。 5.根据权利要求4所述的方法, 其特征在于, 所述第一纹理存储结构为3D纹理存储结 构, 所述第一纹理存储结构参数包括纹理存储结构的高度、 宽度和深度; 所述基于所述输入数据的像素宽度、 像素高度、 通道数以及所述第一。
6、纹理存储结构的 数据存储方式, 确定所述第一纹理存储结构的第一纹理存储结构参数, 包括: 将所述输入数据的像素宽度作为所述第一纹理存储结构的宽度, 将所述输入数据的像 素高度作为所述第一纹理存储结构的高度; 以及 基于所述输入数据的通道数和所述第一纹理存储结构中每个纹素的通道数, 确定所述 第一纹理存储结构的深度。 6.根据权利要求5所述的方法, 其特征在于, 所述基于所述输入数据的通道数和所述第 一纹理存储结构中每个纹素的通道数, 确定所述第一纹理存储结构的深度, 包括: 通过如下表达式确定所述第一纹理存储结构的深度: 其中, d1为所述第一纹理存储结构的深度, c1为所述输入数据的通道数,。
7、 s1为所述第一 纹理存储结构中每个纹素的通道数,为向下取整运算符号。 7.根据权利要求3所述的方法, 其特征在于, 所述将所述权重数据采用第二纹理存储结 权利要求书 1/3 页 2 CN 111091188 A 2 构进行存储, 得到第二纹理数据, 包括: 获取与所述权重数据的数据量相关的参数数据; 基于所述与所述权重数据的数据量相关的参数数据以及所述第二纹理存储结构的数 据存储方式, 确定所述第二纹理存储结构的第二纹理存储结构参数; 将所述权重数据根据所述第二纹理存储结构参数进行存储, 得到所述第二纹理数据。 8.根据权利要求7所述的方法, 其特征在于, 所述第二纹理存储结构为3D纹理存储。
8、结 构, 所述第二纹理存储结构参数包括纹理存储结构的高度、 宽度和深度; 若所述与所述权重数据的数据量相关的参数数据包括所述权重数据的像素宽度和像 素高度、 以及所述数据处理层的输入通道数和输出通道数, 所述基于所述与所述权重数据 的数据量相关的参数数据以及所述第二纹理存储结构的数据存储方式, 确定所述第二纹理 存储结构的第二纹理存储结构参数, 包括: 基于所述数据处理层的输入通道数和输出通道数中的一个通道数、 以及所述权重数据 的像素宽度和像素高度, 确定所述第二纹理存储结构的高度和宽度; 基于所述数据处理层的输入通道数和输出通道数中的另一个通道数、 以及所述第二纹 理存储结构中每个纹素的通。
9、道数, 确定所述第二纹理存储结构的深度。 9.根据权利要求8所述的方法, 其特征在于, 所述基于所述数据处理层的输入通道数和 输出通道数中的一个通道数、 以及所述权重数据的像素宽度和像素高度, 确定所述第二纹 理存储结构的高度和宽度, 包括: 将所述权重数据的像素宽度作为所述第二纹理存储结构的宽度; 将所述权重数据的像素高度与所述一个通道数的乘积作为所述第二纹理存储结构的 高度; 基于所述数据处理层的输入通道数和输出通道数中的另一个通道数、 以及所述第二纹 理存储结构中每个纹素的通道数, 确定所述第二纹理存储结构的深度, 包括: 通过如下表达是确定所述第二纹理存储结构的深度: 其中, d2为所。
10、述第二纹理存储结构的深度, c2为所述另一通道数, s2为所述第二纹理存 储结构中每个纹素的通道数,为向下取整运算符号。 10.根据权利要求7所述的方法, 其特征在于, 所述第二纹理存储结构为3D纹理存储结 构, 所述第二纹理存储结构参数包括纹理存储结构的高度、 宽度和深度; 若所述与所述权重数据的数据量相关的参数数据包括所述权重数据的像素宽度和像 素高度、 以及所述数据处理层的输入通道数或输出通道数, 所述基于所述与所述权重数据 的数据量相关的参数数据以及所述第二纹理存储结构的数据存储方式, 确定所述第二纹理 存储结构的第二纹理存储结构参数, 包括: 将所述权重数据的像素宽度作为所述第二纹理。
11、存储结构的宽度, 将所述权重数据的像 素高度作为所述第二纹理存储结构的高度, 并基于所述数据处理层的输入通道数或输出通 道数, 以及所述第二纹理存储结构中每个纹素的通道数, 确定所述第二纹理存储结构的深 度。 权利要求书 2/3 页 3 CN 111091188 A 3 11.根据权利要求10所述的方法, 其特征在于, 所述基于所述数据处理层的输入通道数 或输出通道数, 以及所述第二纹理存储结构中每个纹素的通道数, 确定所述第二纹理存储 结构的深度, 包括: 通过如下表达式确定所述纹理存储结构的深度: 其中, 其中, d3为所述第二纹理存储结构的深度, c3为所述输入通道数或所述输出通道 数,。
12、 s3为所述第二纹理存储结构中每个纹素的通道数,为向下取整运算符号。 12.根据权利要求1所述的方法, 其特征在于, 利用GPU中的至少一个计算单元进行所述 数据处理层的数据处理; 所述基于所述第一纹理数据和所述第二纹理数据进行所述数据处 理层的数据处理, 得到所述数据处理层的输出数据, 包括: 利用各计算单元读取所述第一纹理数据中一个第一纹理位置存储的输入数据, 并利用 该计算单元读取所述第二纹理数据中对应于该第一纹理位置的第二纹理位置存储的权重 数据; 利用各计算单元对读取到的输入数据和对应的权重数据进行数据处理, 得到所述数据 处理层的输出数据。 13.一种神经网络的前向计算装置, 其特。
13、征在于, 该装置用于对所述神经网络中的至少 一个数据处理层进行数据处理, 包括: 数据获取模块, 用于获取所述数据处理层的输入数据和权重数据; 数据存储模块, 用于将采用第一纹理存储结构进行存储, 得到第一纹理数据, 将所述权 重数据采用第二纹理存储结构进行存储, 得到第二纹理数据; 数据处理模块, 用于基于所述第一纹理数据和所述第二纹理数据进行所述数据处理层 的数据处理, 得到所述数据处理层的输出数据。 14.一种电子设备, 其特征在于, 包括存储器和处理器; 所述存储器中存储有计算机程序; 所述处理器, 用于执行所述计算机程序以实现权利要求1至12中任一项所述的方法。 15.一种计算机可读。
14、存储介质, 其特征在于, 所述计算机可读存储介质上存储有计算机 程序, 所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法。 权利要求书 3/3 页 4 CN 111091188 A 4 神经网络的前向计算方法、 装置及计算机可读存储介质 技术领域 0001 本申请涉及计算机技术领域, 具体而言, 本申请涉及一种神经网络的前向计算方 法、 装置、 电子设备及计算机可读存储介质。 背景技术 0002 神经网络前向算法需要在移动端和PC端等不同平台实现GPU(Graphics Processing Unit, 图形处理器)计算, 不同平台使用的计算库或图形库有所不同, 在移动 端,。
15、 通常采用OpenCL和OpenGL等API进行实现, 而在运行Windows操作系统的PC端, 由于 Direct3D的通用性, 可以使用Direct3D图形库来实现神经网络前向算法。 神经网络前向计 算主要由网络每一层在GPU中的计算组成, 包括每一层的输入数据和权值上传到GPU, 并在 GPU中计算得到结果。 0003 现有的技术方案通常采用Buffer(缓存)结构作为数据存储的方式, 即把网络每层 的输入和权值上传到GPU的Buffer中, 在GPU中再用Buffer进行计算, 最后再用CPU(Central Processing Unit, 中央处理器)读取GPU中的Buffer得到。
16、计算结果。 0004 但是, 由于Buffer在内存中的存储是线性的, GPU在对其结构中的数据进行读取和 存储过程中, 需要消耗较长的时间, 导致前向计算的效率较低。 发明内容 0005 本申请的目的旨在至少能解决上述的技术缺陷之一, 本申请实施例所提供的技术 方案如下: 0006 第一方面, 本申请实施例提供了一种神经网络的前向计算方法, 神经网络中的至 少一个数据处理层进行数据处理的方法包括: 0007 获取数据处理层的输入数据和权重数据; 0008 将输入数据采用第一纹理存储结构进行存储, 得到第一纹理数据, 将权重数据采 用第二纹理存储结构进行存储, 得到第二纹理数据; 0009 基。
17、于第一纹理数据和第二纹理数据进行数据处理层的数据处理, 得到数据处理层 的输出数据。 0010 可选的, 第一纹理存储结构或第二纹理存储结构为以下任一种: 0011 红、 绿、 蓝、 透明RGBA四通道三维3D纹理存储结构; 0012 RGB三通道3D纹理存储结构; 0013 RGBA四通道2D纹理存储结构; 0014 RGB三通道2D纹理存储结构。 0015 可选的, 第一纹理数据和第二纹理数据中分别包含有至少一个纹素, 且每个纹素 的通道数为三或四, 至少一个纹素由对应的输入数据或权重数据按照通道数依序排列而 成。 0016 可选的, 将输入数据采用第一纹理存储结构进行存储, 得到第一纹理。
18、数据, 包括: 说明书 1/17 页 5 CN 111091188 A 5 0017 获取输入数据的像素宽度、 像素高度以及通道数; 0018 基于输入数据的像素宽度、 像素高度、 通道数以及第一纹理存储结构的数据存储 方式, 确定第一纹理存储结构的第一纹理存储结构参数; 0019 将输入数据根据第一纹理存储结构参数进行存储, 得到第一纹理数据。 0020 可选的, 第一纹理存储结构为3D纹理存储结构, 第一纹理存储结构参数包括纹理 存储结构的高度、 宽度和深度; 0021 基于输入数据的像素宽度、 像素高度、 通道数以及第一纹理存储结构的数据存储 方式, 确定第一纹理存储结构的第一纹理存储结。
19、构参数, 包括: 0022 将输入数据的像素宽度作为第一纹理存储结构的宽度, 将输入数据的像素高度作 为第一纹理存储结构的高度, 并基于输入数据的通道数和第一纹理存储结构中每个纹素的 通道数, 确定第一纹理存储结构的深度。 0023 可选的, 基于输入数据的通道数和第一纹理存储结构中每个纹素的通道数, 确定 第一纹理存储结构的深度, 包括: 0024 通过如下表达式确定第一纹理存储结构的深度: 0025 0026 其中, d1为第一纹理存储结构的深度, c1为输入数据的通道数, s1为第一纹理存储 结构中每个纹素的通道数,为向下取整运算符号。 0027 可选的, 将权重数据采用第二纹理存储结构。
20、进行存储, 得到第二纹理数据, 包括: 0028 获取与权重数据的数据量相关的参数数据; 0029 基于与权重数据的数据量相关的参数数据以及第二纹理存储结构的数据存储方 式, 确定第二纹理存储结构的第二纹理存储结构参数; 0030 将权重数据根据第二纹理存储结构参数进行存储, 得到第二纹理数据。 0031 可选的, 第二纹理存储结构为3D纹理存储结构, 则第二纹理存储结构参数包括纹 理存储结构的高度、 宽度和深度; 0032 若与权重数据的数据量相关的参数数据包括权重数据的像素宽度和像素高度、 以 及数据处理层的输入通道数和输出通道数, 且纹理存储结构为3D纹理存储结构, 基于与权 重数据的数。
21、据量相关的参数数据以及第二纹理存储结构的数据存储方式, 确定第二纹理存 储结构的第二纹理存储结构参数, 包括: 0033 基于数据处理层的输入通道数和输出通道数中的一个通道数、 以及权重数据的像 素宽度和像素高度, 确定第二纹理存储结构的高度和宽度; 0034 基于数据处理层的输入通道数和输出通道数中的另一个通道数、 以及第二纹理存 储结构中每个纹素的通道数, 确定第二纹理存储结构的深度。 0035 可选的, 基于数据处理层的输入通道数和输出通道数中的一个通道数、 以及权重 数据的像素宽度和像素高度, 确定第二纹理存储结构的高度和宽度, 包括: 0036 将权重数据的像素宽度作为第二纹理存储结。
22、构的宽度; 0037 将权重数据的像素高度与一个通道数的乘积作为第二纹理存储结构的高度; 0038 基于数据处理层的输入通道数和输出通道数中的另一个通道数、 以及第二纹理存 说明书 2/17 页 6 CN 111091188 A 6 储结构中每个纹素的通道数, 确定第二纹理存储结构的深度, 包括: 0039 通过如下表达是确定第二纹理存储结构的深度: 0040 0041 其中, d2为第二纹理存储结构的深度, c2为另一通道数, s2为第二纹理存储结构中 每个纹素的通道数,为向下取整运算符号。 0042 可选的, 第二纹理存储结构为3D纹理存储结构, 则第二纹理存储结构参数包括纹 理存储结构的。
23、高度、 宽度和深度; 0043 若与权重数据的数据量相关的参数数据包括权重数据的像素宽度和像素高度、 以 及数据处理层的输入通道数或输出通道数, 且纹理存储结构为3D纹理存储结构, 基于与权 重数据的数据量相关的参数数据以及第二纹理存储结构的数据存储方式, 确定第二纹理存 储结构的第二纹理存储结构参数, 包括: 0044 将权重数据的像素宽度作为第二纹理存储结构的宽度, 将权重数据的像素高度作 为第二纹理存储结构的高度, 并基于数据处理层的输入通道数或输出通道数, 以及第二纹 理存储结构中每个纹素的通道数, 确定第二纹理存储结构的深度。 0045 可选的, 基于数据处理层的输入通道数或输出通道。
24、数, 以及第二纹理存储结构中 每个纹素的通道数, 确定第二纹理存储结构的深度, 包括: 0046 通过如下表达式确定纹理存储结构的深度: 0047 0048 其中, 其中, d3为第二纹理存储结构的深度, c3为输入通道数或输出通道数, s3为第 二纹理存储结构中每个纹素的通道数,为向下取整运算符号。 0049 可选的, 利用GPU中的至少一个计算单元进行数据处理层的数据处理; 基于第一纹 理数据和第二纹理数据进行数据处理层的数据处理, 得到数据处理层的输出数据, 包括: 0050 利用各计算单元读取第一纹理数据中一个第一纹理位置存储的输入数据, 并利用 该计算单元读取第二纹理数据中对应于该第。
25、一纹理位置的第二纹理位置存储的权重数据; 0051 利用各计算单元对读取到的输入数据和对应的权重数据进行数据处理, 得到数据 处理层的输出数据。 0052 第二方面, 本申请实施例提供了一种神经网络的前向计算装置, 该装置用于对神 经网络中的至少一个数据处理层进行数据处理, 包括: 0053 数据获取模块, 用于获取数据处理层的输入数据和权重数据; 0054 数据存储模块, 用于将采用第一纹理存储结构进行存储, 得到第一纹理数据, 将权 重数据采用第二纹理存储结构进行存储, 得到第二纹理数据; 0055 数据处理模块, 用于基于第一纹理数据和第二纹理数据进行数据处理层的数据处 理, 得到数据处。
26、理层的输出数据。 0056 第三方面, 本申请实施例提供了一种电子设备, 包括存储器和处理器; 0057 存储器中存储有计算机程序; 说明书 3/17 页 7 CN 111091188 A 7 0058 处理器, 用于执行计算机程序以实现第一方面实施例或第一方面任一可选实施例 中所提供的方法。 0059 第四方面, 本申请实施例提供了一种计算机可读存储介质, 其特征在于, 计算机可 读存储介质上存储有计算机程序, 计算机程序被处理器执行时实现第一方面实施例或第一 方面任一可选实施例中所提供的方法。 0060 本申请提供的技术方案带来的有益效果是: 0061 本申请实施例提供的方案, 对于神经网。
27、络的至少一个数据处理层, 将输入数据和 权重数据分别存储在对应的纹理存储结构中, 由于纹理存储结构索引简单方便, 且数据存 储量大, 节省了数据处理层在进行数据处理过程中读取和存储数据的时间, 使得神经网络 的前向计算效率大大提高。 附图说明 0062 为了更清楚地说明本申请实施例中的技术方案, 下面将对本申请实施例描述中所 需要使用的附图作简单地介绍。 0063 图1为现有技术中神经网络前向计算示意图; 0064 图2为本申请实施例提供的一种神经网络的前向计算方法的流程示意图; 0065 图3为本申请实施例的一示例中一个数据处理层的数据处理过程示意图; 0066 图4为本申请实施例的一示例中。
28、输入数据存储过程的示意图; 0067 图5为本申请实施例的一示例中权重数据存储过程的示意图; 0068 图6为本申请实施例的一示例中背景虚化功能的效果示意图; 0069 图7为本申请实施例的一示例中手势识别功能的效果示意图; 0070 图8为本申请实施例的一示例中图像显著性识别功能的效果示意图; 0071 图9为本申请实施例提供的一种神经网络的前向计算装置的结构框图; 0072 图10为本申请实施例提供的一种电子设备的结构示意图。 具体实施方式 0073 下面详细描述本申请的实施例, 所述实施例的示例在附图中示出, 其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。。
29、 下面通过参考附 图描述的实施例是示例性的, 仅用于解释本申请, 而不能解释为对本发明的限制。 0074 本技术领域技术人员可以理解, 除非特意声明, 这里使用的单数形式 “一” 、“一 个” 、“所述” 和 “该” 也可包括复数形式。 应该进一步理解的是, 本申请的说明书中使用的措 辞 “包括” 是指存在所述特征、 整数、 步骤、 操作、 元件和/或组件, 但是并不排除存在或添加 一个或多个其他特征、 整数、 步骤、 操作、 元件、 组件和/或它们的组。 应该理解, 当我们称元 件被 “连接” 或 “耦接” 到另一元件时, 它可以直接连接或耦接到其他元件, 或者也可以存在 中间元件。 此外,。
30、 这里使用的 “连接” 或 “耦接” 可以包括无线连接或无线耦接。 这里使用的措 辞 “和/或” 包括一个或更多个相关联的列出项的全部或任一单元和全部组合。 0075 为使本申请的目的、 技术方案和优点更加清楚, 下面将结合附图对本申请实施方 式作进一步地详细描述。 0076 如图1所示, 在神经网络的前向计算中, 现有的技术方案通常采用Buffer(缓存)结 说明书 4/17 页 8 CN 111091188 A 8 构作为数据存储的方式, 即把网络每层的输入和权值上传到GPU的Buffer中(对应于图中层 输入Buffer和层权值Buffer), 在GPU中再用Buffer进行计算, 最后。
31、再用CPU(Central Processing Unit, 中央处理器)读取GPU中的Buffer得到计算结果(对应于图中结果 Buffer)。 但是, 由于Buffer在内存中的存储是线性的, GPU在对其结构中的数据进行读取和 存储过程中, 需要消耗较长的时间, 导致前向计算的效率较低。 针对上述问题本申请实施例 提供了一种神经网络的前向计算方法。 0077 本申请实施例提供的一种神经网络的前向计算方法, 图2为该神经网络中的至少 一个数据处理层进行数据处理的方法的流程示意图, 该方法的执行主体可以为GPU, 如图2 所示, 该方法可以包括: 0078 步骤S201, 获取数据处理层的输。
32、入数据和权重数据。 0079 其中, 数据处理层一般为神经网络隐藏层(hidden layer), 神经网络可以包含多 个数据处理层, 神经网络的前向计算过程是神经网络中各数据处理层进行数据处理的过 程, 每一数据处理层的数据处理也可以理解为该数据处理层的前向计算过程, 而每个数据 处理层的前向计算过程, 是对该数据处理层的每一输入数据以及与其对应的权重数据做相 应的运算, 得出对应的输出数据的过程。 0080 步骤S202, 将输入数据采用第一纹理存储结构进行存储, 得到第一纹理数据, 将权 重数据采用第二纹理存储结构进行存储, 得到第二纹理数据。 0081 其中, 纹理存储结构是一种结构化。
33、的存储形式, 利用GPU中的着色器可以从其中读 取数据, 也可以将数据写入其中。 纹理存储结构的数据存储方式包括二维(2D)纹理存储结 构、 三维(3D)纹理存储结构、 二维纹理存储结构数组等, 各纹理存储结构中的基本单元可称 为纹素, 每个纹素可以包含有多个通道, 例如R单通道、 RGB三通道、 RGBA四通道等。 纹理存储 结构主要有以下两方面的特点: 一方面, 纹理存储结构通常使用纹理坐标应用到一个表面, 纹理坐标可以作为纹理存储结构中所存储数据的索引, 基于纹理坐标, GPU在从纹理存储结 构中读取数据时, 以及将数据存储进纹理存储结构时, 由于纹理存储结构中索引简单方便, 使得GPU。
34、的数据读取和存储速度都快于Buffer存储结构。 另一方面, 纹理存储结构的一个纹 素中可以包含多个通道, 因此一个纹素可以存储多个数据, GPU每次读取一个纹素即可以读 取该纹素中所有通道的数据, 同理GPU每次可以向一个纹素的所有通道中存储数据, 那么 GPU每次从纹理存储结构中读取数据量较大, 向纹理存储结构中存储的数据量也较大, 由于 GPU对纹理存储结构进行数据存储或读取时数据吞吐量较大, 使得GPU的数据读取和存储速 度都快于Buffer存储结构。 0082 具体的, 在对神经网络进行前向计算过程中, 由于输入数据和权重数据两者的数 据量或尺寸大小往往不同, 故将两者分开存储, 即。
35、对于各数据处理层, GPU将获取到的该数 据处理层的输入数据和权重数据分别存储在不同的纹理存储结构中, 得到对应的纹理数 据。 0083 步骤S203, 基于第一纹理数据和第二纹理数据进行数据处理层的数据处理, 得到 数据处理层的输出数据。 0084 具体的, GPU从第一纹理数据读取输入数据, 从第二纹理数据读取对应的权重数 据, 基于输入数据和对应的权重数据进行前向计算得出对应的输出数据, 在完成每个输入 数据与其对应的权重数据之间的前向计算后, 得到该层数据处理层的所有输出数据。 说明书 5/17 页 9 CN 111091188 A 9 0085 可以理解的是, 神经网络在进行前向计算。
36、过程中, 可以有一个或多个数据处理层 采用步骤S201至步骤S203的方案进行数据处理。 当连续的两个数据处理层都采用步骤S201 至步骤S203的方案进行数据处理时, 对于前一个数据处理层, GPU在完成步骤203后, 还包括 将该层数据处理层的输出数据存储在相应的纹理存储结构中的步骤。 0086 下面通过一个具体示例来对本申请实施例进行进一步说明, 如图3所示, 该示例中 采用的纹理存储格式为RGBA四通道纹理存储格式, 且对神经网络中每个数据处理层(即图 中网络层)都采用步骤S201至步骤S203的方案进行数据处理。 0087 如图所示, 每层网络层的前向计算开始后, GPU将每层网络层。
37、的输入数据(即图中 网络输入)保存至对应的RGBA四通道纹理中, 将每层网络层的权重数据(及图中网络权值) 保存至对应的RGBA四通道纹理中, GPU的着色器(Shader)从两个RGBA四通道纹理中分别读 取输入数据和权重数据, GPU再根据输入数据和权重数据得出该层网络层的输出数据, 进一 步, 为了便于后一网络层的前向计算, GPU将其输出数据存储至对应的RGBA四通道纹理, 至 此该层网络层的前向计算结束。 0088 本申请实施例提供的方案, 对于神经网络的至少一个数据处理层, 将输入数据和 权重数据分别存储在对应的纹理存储结构中, 由于纹理存储结构索引简单方便, 且数据存 储量大, 。
38、节省了数据处理层在进行数据处理过程中读取和存储数据的时间, 使得神经网络 的前向计算效率大大提高。 0089 在本申请的一种可选实施例中, 第一纹理存储结构或第二纹理存储结构为以下任 一种: 0090 红、 绿、 蓝、 透明RGBA四通道三维3D纹理存储结构; 0091 RGB三通道3D纹理存储结构; 0092 RGBA四通道2D纹理存储结构; 0093 RGB三通道2D纹理存储结构。 0094 具体的, 3D纹理存储结构与2D纹理存储结构的区别在于, 3D纹理存储结构具有不 同的深度, 即3D纹理存储结构的纹素可以设置在不同的深度上, 而2D纹理存储结构可以视 为深度为1的3D纹理存储结构。。
39、 其中, 一个RGBA四通道2D或3D纹理存储结构中的每个纹素能 够存储4个数据, 一个RGB三通道2D或3D纹理存储结构中的每个纹素能够存储3个数据。 可以 理解的是, 纹理存储结构采用何种数据存储方式可以根据实际需求进行确定, 对于同一个 纹理存储结构来说, 单个纹素中通道数越多其能存储的数据量也就越大, GPU每次读取和存 储操作的数据吞吐量也就越大, 从而前向计算的效率也越高。 0095 在本申请的一种可选实施例中, 第一纹理数据和第二纹理数据中分别包含有至少 一个纹素, 且每个纹素的通道数为三或四, 至少一个纹素由对应的输入数据或权重数据按 照通道数依序排列而成。 0096 其中, 。
40、纹素可以理解为纹理数据的基本构成单位, GPU在从纹理数据中读取数据, 每次可以读取一个纹素内存储的数据, 向纹理数据中存储数据时, 每次可以向一个纹素内 所有通道存储数据。 每个纹素中包含的通道数决定了该纹素的数据吞吐量, 由于第一纹理 数据对应的纹理存储结构和第二纹理数据对应的纹理存储结构分别为三通道或四通道, 那 么第一纹理数据中的纹素和第二纹理数据中的纹素分别包含三通道或四通道, 即通道数分 别为三和四。 说明书 6/17 页 10 CN 111091188 A 10 0097 具体的, 每个纹素中的多个通道可以依次上下堆叠设置, 例如, 包含RGB三个通道 的纹素, 纹素中三个通道R。
41、通道、 G通道、 B通道由下至上依次堆叠, 每个通道中存入输入数据 或权重数据构成对应的纹理数据。 对于3D纹理数据, 其所包含的多个纹素可以在深度方向 依次上下堆叠设置, 每个纹素包含至少RGB三个通道的并排信息, 也可以包含RGBA四个通道 的并排信息。 例如, 参考图5, 其3D纹理数据可以包含2个纹素(纹素1和纹素2)的深度为2的 纹理数据, 其中纹素1和纹素2可以在深度方向由下至上依次堆叠设置, 而每个纹素可以包 括RGBA四通道, 具体来说, 纹素1包含标号为 “1、 2、 3、 4” 的方块对应的四个通道, 纹素2包含 标号为 “5、 6、 7、 8” 的方块对应的四个通道。 0。
42、098 在本申请的可选实施例中, 将输入数据采用第一纹理存储结构进行存储, 得到第 一纹理数据, 包括: 0099 获取输入数据的像素宽度、 像素高度以及通道数; 0100 基于输入数据的像素宽度、 像素高度、 通道数以及第一纹理存储结构的数据存储 方式, 确定第一纹理存储结构的第一纹理存储结构参数; 0101 将输入数据根据第一纹理存储结构参数进行存储, 得到第一纹理数据。 0102 其中, 若输入数据为图片数据, 根据其像素宽度、 像素高度以及通道数可以确定出 其数据量, 若输入数据不为图片数据, 也可将其类比为图片数据, 并根据类比得到的像素宽 度、 像素高度以及颜色通道数可以确定出其数。
43、据量, 例如, 通道数为1的输入数据为一维列 数据(A1, A2, A3, A4, A5), 可以将其类比为像素宽为1, 像素高为5, 通道数为1的图片数据, 显 然其数据量为像素宽、 像素高以及颜色通道的乘积5。 可以理解的是, 输入数据的通道数用 于后文中数据处理层的输入通道数一般是相等的。 0103 具体的, 在对输入数据进行存储得到第一纹理数据的过程中, 首先要确定用于存 储输入数据的第一纹理存储结构的第一纹理存储结构参数种类, 第一纹理存储结构的数据 存储方式(例如2D纹理存储方式或3D纹理存储方式)不同, 对应的第一纹理存储结构参数的 种类也不同, 故需要根据第一纹理存储结构的数据。
44、存储方式确定第一纹理存储结构参数的 种类。 在确定出第一纹理存储结构参数的种类后, 第一纹理存储结构参数的大小决定了对 应的第一纹理存储结构的能够存储的数据量, 那么可根据所需存储的输入数据的数据量, 确定出各第一纹理存储参数的大小(即保证输入数据中的每个数据都能存储在第一纹理存 储结构中)。 确定出第一纹理存储参数的种类和大小即确定出了第一纹理存储结构, 只需将 输入数据存入第一纹理存储结构的相应纹素中的相应通道中, 即得到第一纹理数据。 0104 在本申请的一种可选实施例中, 若第一纹理存储结构为3D纹理存储结构, 则第一 纹理存储结构参数包括纹理存储结构的高度、 宽度和深度; 0105 。
45、若第一纹理存储结构为2D纹理存储结构, 则第一纹理存储结构参数包括纹理存储 结构的高度和宽度。 0106 可以理解的是, 纹理存储结构数据存储方式不同, 其对应的纹理存储结构参数的 种类也不相同。 0107 在本申请的一种可选实施例中, 第一纹理存储结构为3D纹理存储结构, 第一纹理 存储结构参数包括纹理存储结构的高度、 宽度和深度; 0108 基于输入数据的像素宽度、 像素高度、 通道数以及第一纹理存储结构的数据存储 方式, 确定纹理存储结构的第一纹理存储结构参数, 包括: 说明书 7/17 页 11 CN 111091188 A 11 0109 将输入数据的像素宽度作为第一纹理存储结构的宽。
46、度, 将输入数据的像素高度作 为第一纹理存储结构的高度, 并基于输入数据的通道数和第一纹理存储结构中每个纹素的 通道数, 确定第一纹理存储结构的深度。 0110 其中, 由前文描述可知, 若第一纹理存储结构为3D纹理存储结构, 无论是RGB三通 道3D纹理存储结构, 还是RGBA四通道3D纹理存储结构, 对应的第一纹理存储结构参数包括 高度、 宽度和深度。 在对输入数据进行存储前, 要根据输入数据的数据量和纹理存储结构的 数据存储方式确定纹理存储结构的高度、 宽度和深度的值。 0111 具体的, 要实现对输入数据的存储, 只要保证第一纹理存储结构的数据存储量大 于输入数据的数据量即可, 由前文。
47、描述可知, 输入数据的数据量为其像素宽度、 像素高度和 通道数的乘积, 第一纹理存储结构的数据存储量为其宽度、 高度、 深度和第一纹理存储结构 中每个纹素的通道数的乘积。 为了便于各输入数据纹理位置的确定, 可以将输入数据的像 素宽度作为纹理存储结构的宽度, 将输入数据的像素高度作为第一纹理存储结构的高度, 那么第一纹理结构的数据存储量能否大于输入数据的数据量, 取决于输入数据的通道数、 第一纹理存储结构的深度以及其中每个纹素的通道数。 所以, 无论第一纹理存储结构为RGB 三通道3D纹理存储结构, 还是RGBA四通道3D纹理存储结构, 都可以基于输入数据的通道数 和第一纹理存储结构中每个纹素。
48、的通道数, 确定第一纹理存储结构的深度。 0112 在本申请的一种可选实施例中, 基于输入数据的通道数和第一纹理存储结构中每 个纹素的通道数, 确定第一纹理存储结构的深度, 包括: 0113 通过如下表达式确定第一纹理存储结构的深度: 0114 0115 其中, d1为第一纹理存储结构的深度, c1为输入数据的通道数, s1为第一纹理存储 结构中每个纹素的通道数,为向下取整运算符号。 0116 具体的, 若输入数据的像素高为w1, 像素宽度为b1, 通道数为c1, 将输入数据的像素 高度w1作为第一纹理存储结构的高度, 将输入数据的像素宽度b1作为第一纹理存储结构的 宽度。 若第一纹理存储结构。
49、为RGBA四通道3D纹理存储结构, 那么在该第一纹理存储结构中, 深度1对应的结构的数据存储量为w1*b1*4, 而输入数据的数据量为w1*b1*c1, 要想将所有输 入数据存入该第一纹理存储结构中, 该纹理存储结构的深度由输入数据的通道数c1确定, 当c1小于等于4的时, 该第一纹理存储结构深度至少为1可满足数据量要求, 当c1大于4小于 等于8, 该第一纹理存储结构至少深度为2可满足数据量要求, 当c1大于8小于等于12, 该第 一纹理存储结构深度至少为3可满足数据量要求, 以此类推, 即可确定出该第一纹理存储结 构的深度值。 换言之, 在此情形下, 为了使得该第一纹理存储结构中存储空间利。
50、用率尽可能 的高, 可以通过如下表达式确定第一纹理存储结构的深度: 0117 0118 其中, d1为第一纹理存储结构数据的深度, c1为输入数据的通道数。 0119 若第一纹理存储结构为RGB三通道纹理存储结构, 那么在该第一纹理存储结构中, 深度1对应的结构的数据存储量为w1*b1*3, 而输入数据的数据量为w1*b1*c1, 要想将所有输 说明书 8/17 页 12 CN 111091188 A 12 入数据存入该第一纹理存储结构中, 该纹理存储结构的深度由输入数据的通道数c1确定, 当c1小于等于3时, 该第一纹理存储结构深度至少为1可满足数据量要求, 当c1大于3小于等 于6时, 该。
- 内容关键字: 神经网络 计算方法 装置 计算机 可读 存储 介质
相机模块.pdf
具有防堵机构的浆水处理用滤筛装置.pdf
打包设备.pdf
可回收动脉瘤辅助支架及输送系统.pdf
电梯井道相邻房间的复合隔声墙体构造.pdf
灯具的免接电线的导电铜片触点结构.pdf
管式反应器.pdf
陶瓷纤维管.pdf
留孔装置.pdf
冲压机用的送料机构.pdf
玻璃装饰条组装装置.pdf
电缆抗拉强度检测装置.pdf
电网建设的架线机.pdf
家电玻璃多向磨边机.pdf
用于土壤肥料的均匀泼洒机构.pdf
漏电电流检测仪及防护组件.pdf
洁净室多重复合杀菌过滤风口结构.pdf
纸垛自动整理装置.pdf
有机废气、有机废液及烟气的协同处理系统.pdf
铜锭抛光用夹具.pdf
指纹取景器.pdf
新型电动自楔式安全制动器.pdf
新型血糖试纸盒.pdf
中远距离传输零中频接收机电路.pdf
纳米铁强化磺胺废水厌氧消化的方法.pdf
鱼缸除垢机器人.pdf
可变形手持便携式三防平板电脑.pdf
步进电机散热方法、系统及介质.pdf
建筑施工降尘设备.pdf
防水防潮型家用可燃气体探测器.pdf
基于物联网的智能实验室安全管理策略确定方法及装置.pdf
基于双边带光频梳的快速布里渊光学时域分析仪.pdf
用官能化嵌段共聚物改性的沥青水基乳液和分散液.pdf
编带机.pdf
输料栈桥伸缩缝.pdf
可滑动的隐形铰链.pdf
一种钢筋混凝土的承台结构.pdf
一种防盗门的智能保护装置.pdf
虹吸排水系统及其改进方法.pdf
灭蚊栅栏.pdf
一种厂房墙体或门体用可调宽度的型材.pdf
一种门窗钩锁.pdf
一种挡土墙及其砌砖.pdf
一种水刺非织造布墙布的制造方法.pdf
木塑套装门门边线.pdf
一种体积压裂缝网的形成方法.pdf
氢氧化铝、氢氧化铝浆液及含有此氢氧化铝的树脂组成物以及其制造方法.pdf
一种预制空心板埋芯成孔管.pdf
小型浇注式沥青混凝土搅拌设备.pdf
自动锁闭内胆的投币机装置.pdf
矩形顶管复合管节结构.pdf