zoukankan      html  css  js  c++  java
  • 深度学习加速

    一、训练加速

    多GPU训练:

    1.1 基于数据的并行

    模型平均(Model Average)、同步随机梯度下降(SSGD)、异步随机梯度下降(ASGD)

    模型平均(Model Average)

    每个Client训练平均的训练数据,每个batch更新一个模型,然后分别将模型发送给Server,Server将模型进行平均模型,然后发给各自的Client,然后再次进行训练,依此类推。

    缺点:同步进行,每个Client的性能(采用不同的GPU)不一样,性能取决于性能最差的Client。

    同步随机梯度下降(SSGD)

    初始化模型W0,每个Client训练平均的训练数据,每个batch训练得到每个Client的梯度ΔW,然后分别将模型发送给Server,Server将梯度ΔW进行平均,然后通过初始参数、学习了和平均梯度得到迭代的参数W1,然后将新的迭代参数发给各自的Client,然后再次进行训练,依此类推。类似模型平均类似(模型平均计算参数在各自Client进行,而SSGD在Server端进行计算模型)

    缺点:和模型平均类似,同步进行,每个Client的性能(采用不同的GPU)不一样,性能取决于性能最差的Client。

    异步随机梯度下降(ASGD)

    同SSGD,在Client端计算梯度,在Server端做梯度更新。不同于SSGD,ASGD是异步的。即每个Client计算梯度之后,直接通过Server中的参数计算迭代后的值。

    基于模型的并行

    将神经网络的模型进行分块,每个GPU只负责每块的模型训练。

    二、推理加速

    1.SVD分解

    2.Hidden Node Prune

    3.知识蒸馏(teacher student)

    4.参数共享(LSTM的参数共享)

    5.神经网络的量化

    6.Binary Net

    7.基于fft的循环矩阵加速

    2.1 SVD分解

    SVD可以做神经网络的加速,隐层节点的裁剪。

  • 相关阅读:
    5、面试题-测试用例篇
    4、面试题-技术篇
    3、面试题-测试流程
    2、面试题-接口测试用例
    全屏圆角弹出框
    Jquery的each退出循环
    拖动DIV
    head里面的其他标记
    更新字段
    Python---序列化
  • 原文地址:https://www.cnblogs.com/xjlearningAI/p/14379929.html
Copyright © 2011-2022 走看看