自动向量化Vmap体验

目录

1. 环境准备

2. 向量化思维

3. 手动向量化

 4. 自动向量化

 4.1 高阶函数的嵌套

4.2. Cell的自动向量化 

4.3 模型集成场景


1. 环境准备

进入自动化向量Vmap官网链接

https://www.mindspore.cn/tutorials/experts/zh-CN/r2.0.0-alpha/vmap/vmap.html

点击”在ModelArts平台运行“

 

选择python3.7.10 CPU

 

 

2. 向量化思维

使用向量化思维可以大大简化数据处理和模型设计的复杂度,实现更高效,更准确的计算和模型训练。

3. 手动向量化

手动向量化将代码从一次处理一个数值变成一次处理一组数据。通过调用for循环来对数据进行批处理, 提高了计算效率,并且减少内存访问次数,但是可读性降低,对于不熟悉向量计算的人来讲,会比较难以理解,编程难度也随之增加。

开始体验

构造一个简单的卷积函数

 

 mindspore代码未安装

先安装一下

输入 pip install mindspore==2.0.0-alpha

 安装成功

再次复制代码到里面

用for循环进行批量处理

 

重写函数实现更高效率的向量化计算逻辑 , 不过随着维度的增加,代码可读性降低

 

 4. 自动向量化

自动向量化是将代码翻译成向量指令的过程,以便计算机可以同时执行多个操作,可以提高计算效率,且代码简洁

mindspore的vmap自动化向量可以减少开发人员的工作量,且支持CPU和GPU等平台

仅需调用一个接口即可函数转换为向量化形式

mindspore.vmap 是用于沿参数轴映射函数 fn 的高阶函数

其入参有三个fn in_axes out_axes 

 上面那个简单的示例并没有给定in_axes  out_axes 

下面的示例输入了in_axes和out_axes in_axes=(0, 1), out_axes=1

 也可以不沿任何轴进行处理,输入的位置配置为None即可

 

 4.1 高阶函数的嵌套

vmapvmap嵌套使用,应用于两层以上的批处理逻辑

grad+vmap嵌套

 

4.2. Cell的自动向量化 

 就是把函数换成类(Cell示例),输入vmap即可,从vmap的定义看到,vmap的第一个参数允许输入类型有Cell, Function, CellList

 

4.3 模型集成场景

多个模型实例以CellList的形式传入给vmap

nets = nn.CellList([net1, net2, net3, net4])

然后再把nets传给vmap

 

 

体验结束~~~ 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值