【K210踩坑】pytorch模型转kmodel,Dock上使用。(最终未实现)

  • Post author:
  • Post category:其他




前言

硬件:maix dock

软件:maix ide nncase 0.1(版本大坑)



一、踩大坑


  1. maix 对 k210 的 nncase 模型转换工具早已停止支持,只支持nncase 0.1版本。用最新nncase转换的kmodel 在maix里加载不了,接上一条,所以说要用maix对k210做开发,就要用nncase0.1去转换模型,但是嘉楠官网早已更新到了nncase1.7,而0.1属于化石版本,早已不做支持。【好,我要用maix,只有选用nncase0.1】

  2. 接上,所以0.1很low,nncase0.1只能转换 tflite 模型到kmodel。而我在使用中发现,nncase0.1好像转换不了由pytorch模型转换而来的tflite(个人理解),不知其中是什么原理,总之就是报错。换用tensorflow模型生成的tfliite就可以用nncase0.1转换成功。【好,那我换成tensorflow写模型】

  3. 接上,tensorflow生成的tflite,经nncase0.1转为kmodel,烧到maix dock里。发现一个问题是,maix提供的模型推理函数,输入只能是图片(个人理解),但是我想要的是网络输入数据和输出数据由我自己定。【好,那不用maix开发了,换用嘉楠官方提供的K210 SDK 库】

  4. 接上,换用k210 SDK库,嗯,整不来了,太难了,嘉楠官方给的k210 sdk 例程是针对他们自己的开发板的。但是我现在用的是maix dock开发板,我想用别的开发板的例程来开发自己的开发板,好吧,整不来了,纯c编写各种驱动和模型加载推理代码。【好,我放弃maix dock k210】

  5. 如上所述,一步一步撞壁,一步一步改换路线,最后放弃210(个人太菜),准备换v831。下面记录下本次探索的过程

  6. 总结:自己写的pytroch模型想在k210上部署,得选用嘉楠官方的开发板,用他提供的SDK开发。maix dock 不行(个人理解)



二、pytorch 转 kmodel



第①步:pytorch模型搭建、训练、保存



第②步(思路一):pytorch 转 onnx 转 pb 转 tflite 转 kmodel



1. pytorch 转 onnx (成熟的,pytorch官方支持)



2. onnx 转 pb()



3. pb 转 tflite()



4. tflite 转 kmodel(nncase0.1)



第②步(思路二):pytorch 转 onnx 转 h5 转 tflite 转 kmodel



第②步(思路三):k210 嘉楠 SDK 开发



版权声明:本文为weixin_44029896原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。