美文网首页人工智能机器学习-数据挖掘-AI
AI数学基础6-向量化计算(Vectorization)

AI数学基础6-向量化计算(Vectorization)

作者: LabVIEW_Python | 来源:发表于2018-05-01 12:19 被阅读74次

    AI数学基础5-生物学神经网络,人工神经网络,逻辑回归求导计算图

    向量化是非常常用的加速计算的方式,特别适合深度学习等需要训练大数据的领域。

    对于 y = wx + b,  若 w, x都是向量,那么,可以用两种方式来计算,第一是for 循环

    y = 0

    for i in range(n):

        y += w[i]*x[i]

        y += b

    也可以用向量化的方式实现:

    y = np.dot(w,x) + b

    二者计算速度相差500倍以上,测试结果如下:

    所以,Andrew Ng给大家的建议是:Whenever Possible, avoid explicit for-loops

    对于独立的样本,用For循环串行计算的效率远远低于向量化后,用矩阵方式并行计算的效率。

    神经网络训练,恰恰是大量独立样本的大规模并行乘加计算!~~~ 换句话说,硬件乘加单元越多,并行计算能力越强

    独立(independent)在数学上的意思是,相互之间没有计算的先后顺序或者依赖关系。

    相对CPU,GPU这种具备超多并行计算单元的处理器,更加适合独立样本的矩阵计算,计算效率远远超过CPU:参考《Debunking the 100X GPU vs. CPU Myth:An Evaluation of Throughput Computing on CPU and GPU

    Google出的TPU,就更加适合神经网络计算,效率比GPU更高。TPU性能强劲的秘诀,是因为它专注于神经网络推断。这使得量化选择、CISC指令集、矩阵处理器和最小设计得好很好的实现。

    由此可以看出:TPU和APU(AI芯片)本质是,大量堆叠向量运算所需要的乘加单元,消除与向量计算无关的电路单元,在功耗和芯片面积尽可能小的情况下,把向量计算能力做的尽可能大。

    AI数学基础7-行向量和列向量

    相关文章

      网友评论

        本文标题:AI数学基础6-向量化计算(Vectorization)

        本文链接:https://www.haomeiwen.com/subject/vepxrftx.html