当前位置: 首页 > news >正文

美国做i网站360指数查询

美国做i网站,360指数查询,做ppt兼职的网站,一个网站开发团队的人员配置【GD32307E-START】04 使用TinyMaix进行手写数字识别 参考博客 【GD32F427开发板试用】使用TinyMaix进行手写数字识别 https://blog.csdn.net/weixin_47569031/article/details/129009839 软硬件平台 GD32F307E-START Board开发板GCC Makefile TinyMaix简介 TinyMaix是国…

【GD32307E-START】04 使用TinyMaix进行手写数字识别

参考博客

【GD32F427开发板试用】使用TinyMaix进行手写数字识别 https://blog.csdn.net/weixin_47569031/article/details/129009839

软硬件平台

  1. GD32F307E-START Board开发板
  2. GCC Makefile
    在这里插入图片描述

TinyMaix简介

在这里插入图片描述

TinyMaix是国内sipeed团队开发一个轻量级AI推理框架。https://wiki.sipeed.com/ai/zh/deploy/tinymaix.html

TinyMaix 是面向单片机的超轻量级的神经网络推理库,即 TinyML 推理库,可以让你在任意单片机上运行轻量级深度学习模型 。

关键特性

  • 核心代码少于400行(tm_layers.c+tm_model.c+arch_cpu.h), 代码段(.text)少于3KB
  • 低内存消耗,甚至Arduino ATmega328 (32KB Flash, 2KB Ram) 都能基于TinyMaix跑mnist(手写数字识别)
  • 支持INT8/FP32/FP16模型,实验性地支持FP8模型,支持keras h5或tflite模型转换
  • 支持多种芯片架构的专用指令优化: ARM SIMD/NEON/MVEI,RV32P, RV64V
  • 友好的用户接口,只需要load/run模型~
  • 支持全静态的内存配置(无需malloc)
  • MaixHub 在线模型训练支持

所以,在我们这次试用的主角GD32F307上运行TinyMaix完全是没有任何压力的。接下来,我将介绍如何在GD32F307上运行TinyMaix进行手写数字识别。

1.1 TinyMaix开源项目

GitHub代码仓: https://github.com/sipeed/tinymaix

二、TinyMaix工程

TinyMaix是一个轻量级AI推理框架,他的核心功能就是支持AI模型的各种算子,可以简单理解为一个矩阵和向量计算库。对于计算库的移植,我们通常只需要解决编译问题即可,不涉及外设和周边元件。

创建GCC工程并添加TinyMaix源码

在之前的gcc 工程模板上创建TinyMaix文件夹

在这里插入图片描述

从Github克隆TinyMaix源码到到当前项目中:

git clone https://github.com/sipeed/TinyMaix.git

在这里插入图片描述

修改Makefile文件,添加TinyMaix文件。
在这里插入图片描述
在这里插入图片描述

三、TinyMaix测试

在上面的工程构建之后,接下来进行一些代码的修改,完成对于GD32F307-START开发板实现功能。

TinyMaix项目提供了一些案例去测试,无需我们手动编写,例如手写数字识别。但是在GD32F307-START开发板上实现下面两个基础功能。

  • 日志打印,具体是printf输出
  • 精准计时,精确到毫秒即可

本次移植TinyMaix,需要实现计时功能,可以在点灯项目代码的基础上进行一些修改,具体修如下:

/*!\file  systick.c\brief the systick configuration file
*/#include "main.h"static __IO uint32_t delay;
static volatile uint32_t ticks = 0;/*!\brief      configure systick\param[in]  none\param[out] none\retval     none
*/
void systick_config(void)
{/* setup systick timer for 1000Hz interrupts */if(SysTick_Config(SystemCoreClock / 1000U)){/* capture error */while (1){}}/* configure the systick handler priority */NVIC_SetPriority(SysTick_IRQn, 0x00U);
}/*!\brief      delay a time in milliseconds\param[in]  count: count in milliseconds\param[out] none\retval     none
*/
void delay_1ms(uint32_t count)
{uint32_t end  = ticks+ count;while(ticks != end){}
}/*!\brief      delay decrement\param[in]  none\param[out] none\retval     none
*/void delay_decrement(void)
{ticks++;
}uint32_t systick_get_ms(void)
{return ticks;
}
修改 tm_port.h 文件

接下来修改 tm_port.h 文件中的几个宏:

#include "systick.h"
#define TM_DBGT_INIT()     uint32_t _start,_finish; uint32_t _time; _start = systick_get_ms();
#define TM_DBGT_START()    _start = systick_get_ms();
#define TM_DBGT(x)         {_finish = systick_get_ms();                  \_time = _finish - _start;                    \TM_PRINTF("===%s use %lu ms\n", (x), _time); \_start = systick_get_ms();}
修改 mnist_main.c 文件

在修改之前文件之前,需要进行下面的操作

  • 删除 examples 目录下除 mnist 之外的其他所有目录;
  • mnist 目录内的 main.c 文件中的 main 函数重命名为 mnist_main
  • mnist 目录内的 main.c 重命名为 mnist_main.c

接下来修改 mnist_main.c 文件,具体修改为:

修改原因,是因为没有找到在GCC开发环境下能够打印浮点数的方法。

同时注释掉tm_stat((tm_mdlbin_t*)mdl_data);

在这里插入图片描述
在这里插入图片描述

四、运行手写数字识别

完成以上修改后,进行Make编译,就可以在GD32F307上运行手写数字识别示例了,具体输出如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.ysxn.cn/news/1829.html

相关文章:

  • 网站域名怎么弄百度搜图入口
  • php js做网站国际婚恋网站排名
  • 浑南区建设局网站网络推广网站推广方法
  • 廊坊专业网站建设漳州seo建站
  • 专业网站建设制作价格东莞网站seo优化托管
  • 美国防务新闻网站2022新闻热点10条
  • 电脑版网站建设中文搜索引擎
  • 大学生作业做网站西安今日头条新闻
  • 北京市招投标公共服务平台官网网络推广与优化
  • 企业网站建设哪家优惠汨罗网站seo
  • html代码大全网站推荐网络推广电话销售技巧和话术
  • 自己做购物网站如何写软文
  • 营销型网站特征百度平台客服
  • 新网站排名优化沈阳关键词自然排名
  • 怎么分析一个网站seo友情链接建立遵循的原则包括
  • 视差网站一个新手如何推销产品
  • 淘宝上可以做网站吗百度一下你就知道官网下载安装
  • b2b主要网站有哪些aso推广平台
  • 寻花问柳专注做男人喜爱的网站山西seo
  • 毕业论文电子商务网站设计摘要新浪微指数
  • 做钓鱼网站教程视频长沙网络营销顾问
  • 新网$网站优化关键词搜索排行榜
  • 罗湖附近公司做网站建设360点睛实效平台推广
  • 深圳网站制作公司平台seo工具包
  • 广州哪个公司做网站好自己做网站制作流程
  • Wordpress不显示功能如何优化网站首页
  • 做网站互联互通运营推广计划
  • 上海哪里可以做网站官网首页入口百度
  • 宣传单网站廊坊百度seo公司
  • 网站建设哪家稳妥百度霸屏推广