上一回已经得到tflite文件,要挪到单片机上还需要一些功夫,.其中属于自己移植部分就这两种.
其中下面的文件夹是针对应用的,之前已经有说过,如果我们模型识别了新的词,那肯定希望他有新的应用,对于一个模型来说,关键修正几个变量.
- kCategoryLabels => 我们训练了几个标签,这里就要几个.
- g_model => 通过转换的tflite模型
- g_model_len => 模型长度
最后需要改掉RespondToCommand,实现更多的功能,现在开始一步一步来.
第一步,修改model.cc的len,等于模型的大小,然后又修改模型的数组,因为数据很大,所以标const把他存Flash里.
第二部修改分类,刚才训练了哪些label都写下来.
到此,已经移植OK了,可以编译实际测试一下,明显发现FLOAT16模型反应很慢(在STM32F769 216MHz下大概要几秒才能反应),但是准确度高.如果是INT8模型,准确度和官方例子差不多,但是速度很快.特别是TF2状态下,目前模型转出来还是很大,如果不在意,可以继续使用TF1.15~