利用Mindspre Lite + 飞腾DSP 进行部署和应用开发的第一步就是通过Mindspore 在python端生成目标模型。主要涉及到模定义、和模型转换。下面以矩阵乘模型为例对过模型生成过程程进行说明:
DSP型号:FT04
一. 撰写python代码 : matrixmul.py
import mindspore as ms
import numpy as np
from mindspore import nn, ops
class Matmul(nn.Cell):
def \__init_\_(self):
super(Matmul, self).\__init_\_()
self.matmul = ops.MatMul()
def construct(self, x1, x2):
out = self.matmul(x1, x2)
return out
x1 = np.ones((2, 2), dtype=np.float32)
x2 = np.ones((2, 2), dtype=np.float32)
x1_tensor = ms.Tensor(x1)
x2_tensor = ms.Tensor(x2)
model = Matmul()
out = model(x1_tensor, x2_tensor)
print(out)
ms.export(model, x1_tensor, x2_tensor, file_name="matmul", file_format="MINDIR"
代码解释:
1.导入的库
mindspore这是主模块,用来构建和导出模型;
*nn是mindspore神经网络模块,包含网络层和模块的定义;
*ops是操作模块,包含各种数学运算操作;
*numpy可用来生成数据;
2.定义矩阵乘法模型
Matmul类继承自nn.Cell,是 MindSpore 中网络构建的基本单元;__init__方法初始化模型,声明一个MatMul操作;construct方法定义了数据输入和操作过程,返回矩阵乘法的结果;
3.创建数据
- 使用
numpy.ones创建两个 2x2 的全1矩阵; - 将
numpy数组转换为mindspore.Tensor,这是 MindSpore 中的数据表示方式,用于神经网络中的计算/
4.创建模型实例并执行
- 创建
Matmul类的一个实例model; - 调用
model的__call__方法(即construct方法)来执行矩阵乘法计算并打印结果。
5.导出模型
- 使用
ms.export函数将模型导出为文件; model是要导出的模型;x1_tensor和x2_tensor是输入参数;file_name是导出模型的文件名;file_format是导出模型的格式,这里指定为 MINDIR。
二. 执行该python代码
python3 .matrixmul.py
此时会生成matrixmul.mindir
三.利用Mindspore Lite 的模型转换工具转换成Mindspore Lite端侧允的模型
converter_lite --fmk=MINDIR --modelFile=matrixmul.mindir --outputFile=matrixmul
最终,生成了Mindspore Lite 端侧支持的模型:matrixmul.ms
以上就是Mindspore Lite端侧部署和生成模型的简单步MindRadar骤。当然这是建立在环境已经搭建好的基础上,比如有些更复杂模型会用到数字信号处理套件mindradar,如有更多疑问,欢迎交流;