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

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

对于 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)在数学上的意思是,相互之间没有计算的先后顺序或者依赖关系。

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值