[发明专利]一种基于多GPU的BPNN训练方法和装置有效
| 申请号: | 201310054733.9 | 申请日: | 2013-02-20 |
| 公开(公告)号: | CN103996069B | 公开(公告)日: | 2018-04-03 |
| 发明(设计)人: | 欧阳剑;王勇 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
| 主分类号: | G06N3/08 | 分类号: | G06N3/08 |
| 代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙)11412 | 代理人: | 袁媛 |
| 地址: | 100085 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 gpu bpnn 训练 方法 装置 | ||
1.一种基于多图形处理器GPU的反向传播神经网络BPNN训练方法,其特征在于,该方法包括:
S1、控制各GPU进行BPNN的正向计算,并在每一层的计算结束后在各GPU之间同步当前层的正向计算输出;
S2、控制各GPU进行BPNN的反向误差计算,并在每一层的计算结束后在各GPU之间同步当前层的反向误差计算输出;
S3、控制各GPU根据所述同步得到的正向计算输出与所述同步得到的反向误差计算输出更新BPNN的权重,包括:
在每个GPU上分别针对各层同步到的正向计算输出进行合并;
在每个GPU上分别针对各层同步到的反向误差计算输出进行合并;
利用各层完整的正向计算输出和完整的反向误差计算输出分别计算得到各层的权重。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1具体包括:
控制各GPU进行正向计算,针对每一层执行:在BPNN的当前层正向计算结束后将正向计算输出传递至下一层的同时,在各GPU之间同步当前层的正向计算输出。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2具体包括:
根据BPNN正向输出数据与预期值的差异,控制各GPU进行反向误差计算,针对每一层执行:在BPNN的当前层反向误差计算结束后将反向误差计算输出传递至下一层的同时,在各GPU之间同步当前层的反向误差计算输出。
4.根据权利要求2所述的方法,其特征在于,调用GPU之间的PCI-E总线在各GPU之间同步所述正向计算输出并保存在GPU内存中。
5.根据权利要求3所述的方法,其特征在于,调用GPU之间的PCI-E总线在各GPU之间同步所述反向误差计算输出并保存在GPU内存中。
6.一种基于多图形处理器GPU的反向传播神经网络BPNN训练装置,其特征在于,该装置包括:
正向计算单元,用于控制各GPU进行BPNN的正向计算,并在每一层的计算结束后在各GPU之间同步当前层的正向计算输出;
反向误差计算单元,用于控制各GPU进行BPNN的反向误差计算,并在每一层的计算结束后在各GPU之间同步当前层的反向误差计算输出;
权重更新单元,用于控制各GPU根据所述同步得到的正向计算输出与所述同步得到的反向误差计算输出更新BPNN的权重,包括:在每个GPU上分别针对各层同步到的正向计算输出进行合并;在每个GPU上分别针对各层同步到的反向误差计算输出进行合并;利用各层完整的正向计算输出和完整的反向误差计算输出分别计算得到各层的权重。
7.根据权利要求6所述的装置,其特征在于,所述正向计算单元具体执行:
控制各GPU进行正向计算,针对每一层执行:在BPNN的当前层正向计算结束后将正向计算输出传递至下一层的同时,在各GPU之间同步当前层的正向计算输出。
8.根据权利要求6所述的装置,其特征在于,所述反向误差计算单元具体执行:
根据BPNN正向输出数据与预期值的差异,控制各GPU进行反向误差计算,针对每一层执行:在BPNN的当前层反向误差计算结束后将反向误差计算输出传递至下一层的同时,在各GPU之间同步当前层的反向误差计算输出。
9.根据权利要求7所述的装置,其特征在于,所述正向计算单元调用GPU之间的PCI-E总线在各GPU之间同步所述正向计算输出并保存在GPU内存中。
10.根据权利要求8所述的装置,其特征在于,所述反向误差计算单元调用GPU之间的PCI-E总线在各GPU之间同步所述正向计算输出并保存在GPU内存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310054733.9/1.html,转载请声明来源钻瓜专利网。





