2484|3

402

帖子

9

TA的资源

纯净的硅(初级)

楼主
 

嘉楠K510开发板的AI应用5——模型验证和格式转换 [复制链接]

 

嘉楠K510开发板的AI应用5——模型验证和格式转换

在前一篇(https://bbs.eeworld.com.cn/thread-1228112-1-1.html)已经基于自建模型训练了一个分类模型“model_ex-019_acc-0.744914_loss-0.569983”,

model_ex-019_acc-0.744914_loss-0.569983.h5 (17.44 MB, 下载次数: 0)

从名字就可以看到,它精度不太高。这次我们来试试如何使用这个模型。

一、在电脑上测试模型效果

首先我们知道这个模型是用于分类的,可以将图片分成3类:dinosaur、flower、hotdog。

use_h5_model.py (928 Bytes, 下载次数: 0)

从网上随机取用几张图片(确保不要踩到训练集),我们试试效果:

 

[[9.9788362e-01 1.5169366e-38 2.1163719e-03]]

dinosaur:99.78836178779602%

hotdog:0.21163718774914742%

flower:1.516936556327676e-36%

 

 

[[1.0000000e+00 3.9236673e-16 0.0000000e+00]]

dinosaur:100.0%

flower:3.9236673111275487e-14%

hotdog:0.0%

 

 

 

 

[[3.668387e-21 1.000000e+00 0.000000e+00]]

flower:100.0%

dinosaur:3.6683868813399893e-19%

hotdog:0.0%

 

 

 

 

[[1.0000000e+00 7.0039135e-21 0.0000000e+00]]

dinosaur:100.0%

flower:7.003913537690513e-19%

hotdog:0.0%

 

 

 

 

[[0.0000000e+00 2.2953879e-23 1.0000000e+00]]

hotdog:100.0%

flower:2.295387861194658e-21%

dinosaur:0.0%

 

 

 

 

[[0. 1. 0.]]

flower:100.0%

hotdog:0.0%

dinosaur:0.0%

 

 

 

 

 

[[0.0000000e+00 3.7185172e-28 1.0000000e+00]]

hotdog:100.0%

flower:3.718517166109849e-26%

dinosaur:0.0%

 

 

 

[[0.0000000e+00 3.4181737e-31 1.0000000e+00]]

hotdog:100.0%

flower:3.4181737082787074e-29%

dinosaur:0.0%

 

 

[[0.00111238 0.9988876  0.        ]]

flower:99.88875985145569%

dinosaur:0.11123800650238991%

hotdog:0.0%

 

 

 

[[2.6787177e-06 9.9999738e-01 0.0000000e+00]]

flower:99.99973773956299%

dinosaur:0.00026787176921061473%

hotdog:0.0%

 

 

 

 

[[0.00721908 0.992781   0.        ]]

flower:99.27809834480286%

dinosaur:0.7219081744551659%

hotdog:0.0%

 

 

 

 

 

[[2.2203972e-06 9.9999774e-01 0.0000000e+00]]

flower:99.99977350234985%

dinosaur:0.00022203971639100928%

hotdog:0.0%

 

 

可以看到命中率是非常高的,而且无论是否分类成功,首选分类都是接近100%,感觉还是有点overfitting了。

 

 

二、从H5格式转换为tflite模式

嘉楠K510只支持kmodel格式,而kmodel格式似乎只能从tflite模式转换而成。所以需要两级转换,先将H5模型转换为tflite模型,再从tflite模型转换为kmodel模型。

TensorFlow的v1版本很容易实现转换,所以在python中调用v1兼容模式即可。四行代码完成模型转换:

import tensorflow as tf

converter=tf.compat.v1.lite.TFLiteConverter.from_keras_model_file("model_ex-019_acc-0.744914_loss-0.569983.h5")

tflite_model=converter.convert()

open("converted_model.tflite","wb").write(tflite_model)

原始模型“model_ex-019_acc-0.744914_loss-0.569983.h5”大概有17.4Mb,转换后的模型“converted_model.tflite”只有5.79Mb。

继续在电脑上验证“converted_model.tflite”模型,可以看到效果和上一节完全一致。

使用tflite.py (1.59 KB, 下载次数: 0)

 

三、将tflite模型转换为kmodel格式

这个需要ncc工具实现,目前最新版本是1.8,虽然已经根据例程写了代码,但执行错误,

File "C:\K510test\tcn.py", line 30, in main

    compiler = nncase.Compiler(compile_options)

于是还是用较早的版本ncc 0.2进行转换的(号称是k210的,不确定k510能否使用),比较小,只有一个ncc的可执行文件。

ncc.exe (12.35 MB, 下载次数: 1)

命令行:

ncc.exe compile converted_model.tflite file.kmodel -i tflite -o kmodel --dataset data

这里为什么要带上dataset我不太明白,而且我尝试过修改数据集中的图片数量不同,但生成的文件大小还是相同的5.47Mb(md5效验值不同,说明每次生成的文件有区别)。

最新回复

怎样编写应用程序交叉编译在板子上运行呢。  详情 回复 发表于 2023-7-29 22:13
点赞 关注
 
 

回复
举报

7277

帖子

2

TA的资源

版主

沙发
 

100%的准确率确实有点高,我还没实际搞过调参,感觉调参是一个挺耗时间和吃经验饭的事。

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
怎样编写应用程序交叉编译在板子上运行呢。

点评

没太明白您的意思,这就是一个模型啊  详情 回复 发表于 2023-7-29 22:21
 
 
 

回复

402

帖子

9

TA的资源

纯净的硅(初级)

4
 
hanhan12 发表于 2023-7-29 22:13 怎样编写应用程序交叉编译在板子上运行呢。

没太明白您的意思,这就是一个模型啊

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表