Vmap运算功能
-
Vmap是一种在python里面经常提到的向量化运算的功能,比如之前大家常用的就是numba和jax中的向量化运算的接口。虽然numpy中也使用到了向量化的运算,比如计算两个numpy数组的加和,就是一种向量化的运算。但是在numpy中模块封装的较好,定制化程度低,但是使用便捷,只需要调用最上层的接口即可。
现在最新版本的mindspore也已经推出了vmap的功能,像mindspore、numba还有jax,与numpy的最大区别就是,需要在使用过程中对需要向量化运算的函数额外嵌套一层vmap的函数,这样就可以实现只对需要向量化运算的模块进行扩展。用一个公式来理解向量化运算的话就是:1+1=12+2=2...+=⇓⃗+⃗=⃗a1+b1=c1a2+b2=c2...an+bn=cn⇓a→+b→=c→
华为推出的深度学习框架MindSpore中最新支持的vmap功能函数,可以用于向量化的计算,本质上的主要作用是替代并加速python中的for循环的操作。最早是在numba和pytroch、jax中对vmap功能进行了支持,其实numpy中的底层计算也用到了向量化的运算,因此速度才如此之快。
vmap在python中更多的是与即时编译功能jit一同使用,能够起到简化编程的同时对性能进行极大程度的优化,尤其是python中的for循环的优化。但是对于一些numpy、jax或者MindSpore中已有的算子而言,还是建议直接使用其已经实现的算子,而不是vmap再手写一个。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏