雷

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 站点地图

模型转换说明

发表于 2019-08-27 更新于 2019-09-07 分类于 K210
  • mnist数据集
  • tensorflow训练模型ckpt->pb
  • pb转tflite
  • tflite转kmodel
  • 转换工具Maix_Toolbox环境搭建

模型转换示意图

ckpt  ->  pb  <->  tflite  ->  kmodel
 ∧     / ∧
 |    /   |
 ∨  ∨   ∨
 graph   pbtxt

ckpt->|->pb->tflite->kmodel
h5----/

文件后缀说明

  • model.ckpt.meta保存计算图的结构,即神经网络的结构
  • checkpoint保存目录下所有的模型文件列表
  • ckpt保存程序中每个变量的取值
  • .data文件为模型中的训练变量

环境:

  • ubuntu18.04LTS
  • python3.6.8
  • tensorflow-1.14.0
  • keras-2.2.5
  • Sipeed MAIX系列开发板

训练模型示例:

https://github.com/sipeed/Maix-TF-workspace

下载安装工具:

Maix_Toolbox:收集了常用格式转换的脚本程序
https://github.com/sipeed/Maix_Toolbox
下载nncase工具箱:
TFlite模型转换为K210的模型格式,需要借助嘉楠的nncase工具箱。
若网络情况好……运行Maix_Toolbox中的get_nncase.sh 脚本,自动从github下载nncase的linux的编译好的二进制文件
若网络情况不好……
将get_nncase.sh 脚本内的wget https://github.com/kendryte/nncase/releases/download/v0.1.0-rc5/ncc-linux-x86_64.tar.xz
修改为wget https://gitee.com/cnbright/nncase/attach_files/267069/download
换到码云的下载地址
也可以直接在这个地址下载,再在Maix_Toolbox内新建文件夹ncc,并解压到此处

tensorflow模型间转换,生成pb文件

ckpt->pb: ckpt2pb.py (.ckpt模型文件转变换.pb模型文件)
h5-pb: keras_to_tensorflow.py (.h5模型文件转变换.pb模型文件)

使用tensorboard显示pb模型图结构

把pb文件放到workspace文件夹下
gen_pb_graph.py
python gen_pb_graph.py workspace/mnist.pb
测试通过给出的地址可以在网页上看到模型结构
可以看到输入节点名为“inputs”,输出节点名为“output”

pb转换tflite

pb->tflite: pb2tflite.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bash pb2tflite.sh workspace/mnist.pb
执行后会询问以下信息:
1. pb file name:(do not include workspace) (pb模型名字)
mnist.pb
2. input_arrays name:(输入节点名字)
inputs
3. output_arrays name:(输出节点名字)
output
4. input width:(输入图像宽度)
28
5. input height:(输入图像高度)
28
6. input channel:(图像通道)
1

之后会生成.tflite
TFlite模型在转换为K210模型的时候,会对原来的网络结构进行量化quantization, 量化会将原来网络中的浮点运算转化为8比特整数运算,起到压缩模型尺寸与加速的目的。线性激活函数, relu激活函数, relu6激活函数等均可以转换为等价的量化运算。

tflite转换kmodel

tflite->kmodel: tflite2kmodel.sh

1
bash tflite2kmodel.sh workspace/mnist.tflite

这时在workspace下生成了mnist.kmodel

kflash烧录kmodel到k210

用kflash烧录.kmodel文件,地址填写: (比如0x300000)

之后此地址就是micropython调用用到的地址

1
task = kpu.load(0x300000)

参考

https://bbs.sipeed.com/t/topic/569

https://blog.csdn.net/dby_bright/article/details/99779311

# K210
转换tflite
mobileNet迁移学习训练猫狗分类生成kmodel模型,k210运行
  • 文章目录
  • 站点概览
ray

ray

17 日志
23 分类
18 标签
RSS
  1. 1. 模型转换示意图
    1. 1.1. 文件后缀说明
    2. 1.2. 环境:
    3. 1.3. 训练模型示例:
    4. 1.4. 下载安装工具:
    5. 1.5. tensorflow模型间转换,生成pb文件
    6. 1.6. 使用tensorboard显示pb模型图结构
    7. 1.7. pb转换tflite
    8. 1.8. tflite转换kmodel
    9. 1.9. kflash烧录kmodel到k210
    10. 1.10. 参考
0%
© 2020 ray
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0