[发明专利]神经网络的前向计算方法、装置及计算机可读存储介质有效
申请号: | 201911294777.2 | 申请日: | 2019-12-16 |
公开(公告)号: | CN111091188B | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 刘文然;陈洪锐;李昊沅;陈其锋;李峰 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/08;G06T1/20;G06T1/60;G06T7/40;G06T7/90 |
代理公司: | 北京市立方律师事务所 11330 | 代理人: | 张筱宁 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络 计算方法 装置 计算机 可读 存储 介质 | ||
本申请提供了一种神经网络的前向计算方法、装置及计算机可读存储介质,神经网络中的至少一个数据处理层进行数据处理的方法包括:获取数据处理层的输入数据和权重数据;将输入数据采用第一纹理存储结构进行存储,得到第一纹理数据,将权重数据采用第二纹理存储结构进行存储,得到第二纹理数据;基于第一纹理数据和第二纹理数据进行数据处理层的数据处理,得到数据处理层的输出数据。对于神经网络的至少一个数据处理层,将输入数据和权重数据分别存储在对应的纹理存储结构中,由于纹理存储结构索引简单方便,且数据存储量大,节省了数据处理层在进行数据处理过程中读取和存储数据的时间,使得神经网络的前向计算效率大大提高。
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种神经网络的前向计算方法、装置、电子设备及计算机可读存储介质。
背景技术
神经网络前向算法需要在移动端和PC端等不同平台实现GPU(GraphicsProcessing Unit,图形处理器)计算,不同平台使用的计算库或图形库有所不同,在移动端,通常采用OpenCL和OpenGL等API进行实现,而在运行Windows操作系统的PC端,由于Direct3D的通用性,可以使用Direct3D图形库来实现神经网络前向算法。神经网络前向计算主要由网络每一层在GPU中的计算组成,包括每一层的输入数据和权值上传到GPU,并在GPU中计算得到结果。
现有的技术方案通常采用Buffer(缓存)结构作为数据存储的方式,即把网络每层的输入和权值上传到GPU的Buffer中,在GPU中再用Buffer进行计算,最后再用CPU(CentralProcessing Unit,中央处理器)读取GPU中的Buffer得到计算结果。
但是,由于Buffer在内存中的存储是线性的,GPU在对其结构中的数据进行读取和存储过程中,需要消耗较长的时间,导致前向计算的效率较低。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
第一方面,本申请实施例提供了一种神经网络的前向计算方法,神经网络中的至少一个数据处理层进行数据处理的方法包括:
获取数据处理层的输入数据和权重数据;
将输入数据采用第一纹理存储结构进行存储,得到第一纹理数据,将权重数据采用第二纹理存储结构进行存储,得到第二纹理数据;
基于第一纹理数据和第二纹理数据进行数据处理层的数据处理,得到数据处理层的输出数据。
可选的,第一纹理存储结构或第二纹理存储结构为以下任一种:
红、绿、蓝、透明RGBA四通道三维3D纹理存储结构;
RGB三通道3D纹理存储结构;
RGBA四通道2D纹理存储结构;
RGB三通道2D纹理存储结构。
可选的,第一纹理数据和第二纹理数据中分别包含有至少一个纹素,且每个纹素的通道数为三或四,至少一个纹素由对应的输入数据或权重数据按照通道数依序排列而成。
可选的,将输入数据采用第一纹理存储结构进行存储,得到第一纹理数据,包括:
获取输入数据的像素宽度、像素高度以及通道数;
基于输入数据的像素宽度、像素高度、通道数以及第一纹理存储结构的数据存储方式,确定第一纹理存储结构的第一纹理存储结构参数;
将输入数据根据第一纹理存储结构参数进行存储,得到第一纹理数据。
可选的,第一纹理存储结构为3D纹理存储结构,第一纹理存储结构参数包括纹理存储结构的高度、宽度和深度;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911294777.2/2.html,转载请声明来源钻瓜专利网。