一种轻量级微处理器AI推理框架制造技术

技术编号:36286255 阅读:24 留言:0更新日期:2023-01-13 09:57
本发明专利技术公开一种轻量级微处理器AI推理框架,包括:首先在上位机将.h5模型量化为numpy数组并储存至数组头文件;创建算子头文件,将解析.h5模型中所使用的算子,将MicroInfer库中与.h5模型中所使用的算子适配的算子存入算子头文件;计算算子头文件所需内存空间的大小;之后,生成MicroInfer核心代码软件包对数组头文件、算子头文件进行解析与调用;最后获取用户BSP工程,根据内存空间大小分配用户BSP工程的内存大小;将MicroInfer软件包文件更新工程BSP并保存到下位机供用户在下位机进行实际开发时进行使用。本发明专利技术解决了现有技术中存在的AI模型难以部署的问题。在的AI模型难以部署的问题。在的AI模型难以部署的问题。

【技术实现步骤摘要】
一种轻量级微处理器AI推理框架


[0001]本专利技术属于人工智能
,涉及一种轻量级微处理器AI推理框架。

技术介绍

[0002]将AI算法模型和深度学习框架移植到带有实时操作系统的微处理器上并不是一件容易的事,在代码移植上:需要对算法模型的大小进行估算才可以计算内存分配大小、需要根据OS的API接口去修改框架代码、需要做到编译器编译选项的统一、需要考虑各种性能优化问题等等。对于一般的嵌入式开发者或者算法研究员来说,要做到对深度学习推理框架、算法模型、目标芯片平台的底层都十分了解,才可以设计出高效稳定的AI嵌入式系统。如果有一种可以完成AI模型自动化部署的工具,则只需要在上位机用命令行指定芯片对应BSP路径和训练后AI模型的路径,就可以一键式的完成AI模型部署,并且能够发挥出芯片的最优性能,且直接编译烧录就可以运行。

技术实现思路

[0003]本专利技术的目的是提供一种轻量级微处理器AI推理框架,解决了现有技术中存在的AI模型难以部署的问题。
[0004]本专利技术所采用的技术方案是:
[0005]一种轻量级微处理器AI推理框架,步骤包括:
[0006]步骤1,在上位机使用量化器对称量化算法将.h5模型量化为numpy数组;
[0007]步骤2,创建数组头文件用于存储numpy数组;
[0008]步骤3,创建算子头文件,将解析.h5模型中所使用的算子,将MicroInfer库中与.h5模型中所使用的算子适配的算子存入算子头文件;
[0009]在步骤1~步骤3的过程中生成计算图并计算算子头文件所需内存空间的大小;
[0010]步骤4,生成MicroInfer核心代码软件包对数组头文件、算子头文件进行解析与调用;
[0011]步骤5获取用户BSP工程,根据计算的内存空间大小重新分配用户BSP工程的内存大小;将MicroInfer软件包文件扩充到用户BSP工程中得到更新的BSP工程并保存到下位机;
[0012]步骤6,生成模板工程代码和API调用注释供用户在下位机进行实际开发时进行使用。
[0013]本专利技术的特点还在于:
[0014]步骤1包括:
[0015]步骤1.1,获取用户所指定的.h5模型目录,对.h5模型目录进行解析得到权重数组和计算层的输出数据;
[0016]步骤1.2,计算.h5模型中权重数组x
f
的input_dec并计算量化尺度input_scale:
[0017][0018]input_scale=7

input_dec
ꢀꢀꢀꢀꢀꢀꢀ
(4)
[0019]步骤1.3,对.h5模型中计算层的输出数据x
o
的output_dec,并计算其量化尺度output_scale用于后续做数据矫正:
[0020][0021]output_scale=7

out_dec
ꢀꢀꢀꢀꢀꢀꢀ
(6)
[0022]其中x
o
为.h5模型中计算层的输出数据,out_dec为对x
o
取2为底的对数;
[0023]步骤1.4,对乘法因子进行矩阵转秩计算得到乘法因子的量化尺度kernel_scale;
[0024]步骤1.5,计算每一层的左移参数layer_RSHIFT和右移参数layer_LSHIFT,用于计算过程中的数据修正:
[0025]layer_RSHIFT=input_scale+kernel_scale

output_scale
ꢀꢀꢀꢀꢀꢀꢀ
(7)
[0026]layer_LSHIFT=input_scale+kernel_scale

bias_scale
ꢀꢀꢀꢀꢀ
(8)
[0027]其中kernel_scale表示乘法因子的量化尺度,input_scale表示.h5模型中权重数组的输入量化尺度,output_scale表示.h5模型中输出数据的量化尺度,bias_scale表示偏置项的量化尺度;
[0028]步骤1.6,采用以下公式完成量化输出值的计算:
[0029]y
q
=round(∑x
q
×
w
q
+b
q
<<layer_LSHIFT)>>layer_RSHIFT
ꢀꢀꢀꢀꢀ
(9)
[0030]其中round表示向下取整运算,x
q
表示量化后的层输入参数,w
q
表示经过转秩和量化后的乘积因子,b
q
表示量化后的偏执项,y
q
表示量化后的numpy数组。
[0031]步骤3包括:利用tensorflow所提供的model.layer方法,遍历所需处理的.h5模型获取.h5模型中所用到的算子。利用open()函数创建算子头文件,若获取.h5模型中所用到的算子已被MicroInfer适配,则利用fp.write()函数写入算子头文件中。
[0032]利用tensorflow所提供的模型处理模块tensorflow.keras.models以及计算图相关模块tensorflow.Graph获取.h5模型中的神经网络层的信息,利用tensor采用逐层递推的方式,去推算.h5模型的各个神经网络层的输入、输出和中间tensor的数值,tensor也就是描述某一个数据缓冲区所需要的内存空间大小和数据维度;
[0033]其中计算图的递推顺序依次为:上层输出tensor大小、本层输入tensor大小、本层中间计算缓存tensor大小、本层输出tensor大小、下一层输入tensor大小;
[0034]其中内存的分配方式为:上层输出tensor大小和下一层输入tensor大小不分配内存,在所有tensor都计算完毕之后将本层输入tensor大小、本层中间计算缓存tensor大小、本层输出tensor大小分别分配给分配内存块1、分配内存块2和分配内存块3,在静态内存区应根据所需内存大小总和,去划分一整块内存空间,再使用指针去进行切割,让各个内存块认领对应的内存段。
[0035]所述步骤4的具体为:创建MicroInfer软件包文件对数组头文件和算子头文件进行解析与调用并写入MicroInfer软件包文件中。
[0036]其中步骤5的具体为:通过python的argparse模块,获取用户BSP工程目录以及MicroInfer软件包文件的工作目录,使用python所提供的文件操作函数,将MicroInfer软件包文件中解析好的数组头文件和算子头文件复制进用户BSP工程目录,得到更新的BSP工程。
[0037]本专利技术的有益效果是:
[0038]本专利技术在MicroInfer配套的自动化部署工具中,所有的复杂操作全部一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种轻量级微处理器AI推理框架,其特征在于,步骤包括:步骤1,在上位机使用量化器对称量化算法将.h5模型量化为numpy数组;步骤2,创建数组头文件用于存储numpy数组;步骤3,创建算子头文件,将解析.h5模型中所使用的算子,将MicroInfer库中与.h5模型中所使用的算子适配的算子存入算子头文件;在步骤1~步骤3的过程中生成计算图并计算算子头文件在下位机上部署所需内存空间的大小;步骤4,生成MicroInfer核心代码软件包对数组头文件、算子头文件进行解析与调用;步骤5获取用户BSP工程,根据计算的内存空间大小重新分配用户BSP工程的内存大小;将MicroInfer软件包文件扩充到用户BSP工程中得到更新的BSP工程并保存到下位机;步骤6,生成模板工程代码和API调用注释供用户在下位机进行实际开发时进行使用。2.如权利要求1所述的一种轻量级微处理器AI推理框架,其特征在于,步骤1包括:步骤1.1,获取用户所指定的.h5模型目录,对.h5模型目录进行解析得到权重数组和计算层的输出数据;步骤1.2,计算.h5模型中权重数组x
f
的input_dec并计算量化尺度input_scale:input_scale=7

input_dec
ꢀꢀꢀꢀꢀꢀꢀ
(4)步骤1.3,对.h5模型中计算层的输出数据x
o
的output_dec,并计算其量化尺度output_scale用于后续做数据矫正:output_scale=7

out_dec
ꢀꢀꢀꢀꢀꢀꢀ
(6)其中x
o
为.h5模型中计算层的输出数据,out_dec为对x
o
取2为底的对数;步骤1.4,对乘法因子进行矩阵转秩计算得到乘法因子的量化尺度kernel_scale;步骤1.5,计算每一层的左移参数layer_RSHIFT和右移参数layer_LSHIFT,用于计算过程中的数据修正:layer_RSHIFT=input_scale+kernel_scale

output_scale
ꢀꢀꢀꢀꢀꢀ
(7)layer_LSHIFT=input_scale+kernel_scale

bias_scale
ꢀꢀꢀꢀꢀꢀꢀꢀ
(8)其中kernel_scale表示乘法因子的量化尺度,input_scale表示.h5模型中权重数组的输入量化尺度,output_scale表示.h5模型中输出数据的量化尺度,bias_scale表示偏置项的量化尺度;步骤1.6,采用以下公式完成量化输出值的计算:y
q
=ro...

【专利技术属性】
技术研发人员:何辞张亚生黄子勤陈晨
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1