[发明专利]一种矩阵运算方法、电子设备及计算机可读存储介质在审
申请号: | 201910594399.3 | 申请日: | 2019-07-03 |
公开(公告)号: | CN110399592A | 公开(公告)日: | 2019-11-01 |
发明(设计)人: | 陈岩 | 申请(专利权)人: | OPPO广东移动通信有限公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06N5/04;G06N3/02 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 刘晖铭;张颖玲 |
地址: | 523860 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 矩阵 运算顺序 计算机可读存储介质 电子设备 矩阵运算 乘法运算 动态规划 模型转换 目标神经 神经网络 网络模型 最小乘法 构建 减小 列数 推理 行数 运算 检测 申请 | ||
本申请实施例公开了一种矩阵运算方法、电子设备及计算机可读存储介质,方法包括:检测到目标神经网络模型中包含n个矩阵连乘时,获取n个矩阵;n取大于2的整数;对n个矩阵进行动态规划,构建n个矩阵的最优值递归公式;基于最优值递归公式和n个矩阵中每个矩阵的行数和列数,计算n个矩阵中至少两个矩阵连乘的最优值;其中,最优值为至少两个矩阵连乘时进行乘法运算的最小次数;基于n个矩阵中至少两个矩阵连乘的最优值,确定至少两个矩阵连乘时的运算顺序;基于至少两个矩阵连乘时的运算顺序,确定n个矩阵连乘时的运算顺序。如此,能够以最小乘法运算次数完成n个矩阵的连乘,减小神经网络的模型转换时间加快推理速度。
技术领域
本申请涉及人工智能技术,尤其涉及一种矩阵运算方法、电子设备及计算机可读存储介质。
背景技术
现有的矩阵相乘(MatMul)算子的融合大都采用在离线优化,通过模型转换时合并MatMul算子,使用模型转换时间来换取模型推理时间的方式,从而达到加快神经网络推理速度的效果。这种方法对于涉及少量矩阵运算的小模型中,模型转换速度不会影响神经网络的推理速度,但是在涉及大量矩阵运算的大模型中,模型转换时间较长会严重影响神经网络的推理速度,导致工程调试速度的变慢。因此,如何提升模型转换速度是MatMul算子的融合技术中亟待解决的问题。
发明内容
为解决上述技术问题,本申请实施例期望提供一种矩阵运算方法、电子设备及计算机可读存储介质。
本申请的技术方案是这样实现的:
第一方面,提供了一种矩阵运算方法,所述方法包括:
检测到目标神经网络模型中包含n个矩阵连乘时,获取所述n个矩阵;n 取大于2的整数;
对所述n个矩阵进行动态规划,构建所述n个矩阵的最优值递归公式;
基于所述最优值递归公式和所述n个矩阵中每个矩阵的行数和列数,计算所述n个矩阵中至少两个矩阵连乘的最优值;其中,所述最优值为所述至少两个矩阵连乘时进行乘法运算的最小次数;
基于所述n个矩阵中至少两个矩阵连乘的最优值,确定所述至少两个矩阵连乘时的运算顺序;
基于所述至少两个矩阵连乘时的运算顺序,确定所述n个矩阵连乘时的运算顺序。
上述方案中,所述最优值递归公式为:
m[i][j]=min{m[i][k]+m[k+1][j]+pi×p(k+1)×qj}
其中,m[i][j]为所述n个矩阵中第i个矩阵至第j个矩阵连乘时的最优值, i取小于或者等于j的正整数,j取小于或者等于n的正整数,min{}为取最小值运算,m[i][k]为所述n个矩阵中第i个矩阵至第k个矩阵连乘时的最优值, m[k+1][j]为所述n个矩阵中第k+1个矩阵至第j个矩阵连乘时的最优值,k为第 i个矩阵至第j个矩阵连乘时的顺序指示参数,k取大于或者等于i且小于j的整数,pi为第i个矩阵的行数,p(k+1)为第k+1个矩阵的行数,qj为第j个矩阵的列数。
上述方案中,所述基于所述n个矩阵中至少两个矩阵连乘的最优值,确定所述至少两个矩阵连乘时的运算顺序,包括:基于所述至少两个矩阵连乘的最优值,确定所述至少两个矩阵的顺序指示参数;基于所述顺序指示参数,确定所述至少两个矩阵连乘时的运算顺序。
上述方案中,所述确定所述至少两个矩阵的顺序指示参数之后,所述方法还包括:利用所述至少两个矩阵的顺序指示参数,建立映射关系表;从所述映射关系表中,确定所述n个矩阵连乘时的运算顺序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于OPPO广东移动通信有限公司,未经OPPO广东移动通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910594399.3/2.html,转载请声明来源钻瓜专利网。