[发明专利]一种神经网络模型的训练方法、装置及芯片有效
申请号: | 201611076461.2 | 申请日: | 2016-11-29 |
公开(公告)号: | CN108122027B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 白小龙;张长征;夏命榛 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 冯艳莲 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 神经网络 模型 训练 方法 装置 芯片 | ||
1.一种神经网络模型的训练方法,其特征在于,所述方法用于包括M个工作模块的训练系统,所述神经网络模型包括L层,所述M和所述L为大于等于1的整数;针对所述神经网络模型的L层中的每层,都使用所述M个工作模块中的至少一个工作模块对所述每层进行训练;所述方法包括:
针对所述神经网络模型的L层中的每层,在所述每层的模型参数集合中的预估数据量不大于输出数据的预估数据量的情况下,确定所述每层的模型训练方式为数据并行训练方式;在所述每层的模型参数集合中的预估数据量大于输出数据的预估数据量的情况下,确定所述每层的模型训练方式为模型并行训练方式;所述模型参数集合包括所述每层的所有模型参数;
所述至少一个工作模块中的每个工作模块都执行以下操作以对所述每层进行训练:
在进行从第一层计算至第L层的前向算法、且j为大于1且小于等于L的整数的情况下:
在所述每层为所述神经网络模型中的第一层,并且所述第一层为数据并行训练方式的情况下:所述工作模块将第一输入数据作为所述第一层的输入数据,对所述第一层的模型参数进行数据并行训练,所述第一输入数据为所述工作模块对应的初始训练数据;
在所述每层为所述神经网络模型中的第一层,并且所述第一层为模型并行训练方式的情况下:所述工作模块将第二输入数据作为所述工作模块第一层的输入数据,对所述第一层的模型参数进行模型并行训练,所述第二输入数据为所述至少一个工作模块对应的初始训练数据;
在所述每层为所述神经网络模型中的第j层,并且所述第j层为数据并行训练方式的情况下:所述工作模块将第一输出数据作为所述第j层的输入数据,对所述第j层的模型参数进行数据并行训练,得到所述工作模块对应的局部梯度,并向服务器上推所述工作模块对应的局部梯度,并从所述服务器下拉所述第j层对应的全局梯度,所述第一输出数据为所述工作模块第j-1层训练的输出数据;
在所述每层为所述神经网络模型中的第j层,并且所述第j层为模型并行训练方式的情况下,所述工作模块将第二输出数据作为所述第j层的输入数据,对所述第j层的模型参数进行模型并行训练,得到所述第j层对应的全局梯度,所述第二输出数据为m个工作模块第j-1层训练的输出数据,所述m个工作模块为所述第j-1层训练使用的一个或多个工作模块;所述m为大于等于1且小于等于M的整数;其中,所述L层中至少一层的m的值大于1。
2.如权利要求1所述的方法,其特征在于,在所述第j层为模型并行训练方式的情况下:所述工作模块将第二输出数据作为所述第j层的输入数据,对所述第j层的模型参数进行模型并行训练,包括:
所述工作模块根据所述第j层的模型参数的集合,确定所述工作模块所训练的所述第j层的模型参数的子集;
所述工作模块将所述第二输出数据作为所述第j层的输入数据,对所述第j层的模型参数的子集进行模型并行训练;
其中,所述至少一个工作模块中的任两个工作模块所训练的所述第j层的模型参数的子集之间交集为空,所述至少一个工作模块中所有工作模块所训练的所述第j层的模型参数的子集的并集等于所述第j层的模型参数的全集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611076461.2/1.html,转载请声明来源钻瓜专利网。