MAX78000一些AI例程测试

news2024/10/6 20:32:40

进入Demo所在目录

cd /E/MAX78000/MAXSDK/Examples/MAX78000/CNN/kws20_demo

执行编译

make

如果之前已经被编译过了,可以先清除,再make

make distclean

选择板型

根据自己用的开发板不一样,注释掉BOARD=EvKit_V1

To compile code for MAX78000 EVKIT enable BOARD=EvKit_V1 in project.mk:

# Specify the board used
ifeq "$(BOARD)" ""
BOARD=EvKit_V1
#BOARD=FTHR_RevA
endif
To compile code for MAX78000 Feather board enable BOARD=FTHR_RevA in project.mk:

# Specify the board used
ifeq "$(BOARD)" ""
#BOARD=EvKit_V1
BOARD=FTHR_RevA
endif

如果你用的IDE来开发的,可以这里设置。

之后可以打开这个文件,来看一下

开始烧录

如果你是Window上整的

openocd -s $MAXIM_PATH/Tools/OpenOCD/scripts -f interface/cmsis-dap.cfg -f target/max78000.cfg -c "program build/MAX78000.elf reset exit"

然后就烧录进去了,没了,里面本来的那个Demo没了,变成这玩意了

如果你在Linux上

./openocd -f tcl/interface/cmsis-dap.cfg -f tcl/target/max78000.cfg -c "program build/MAX78000.elf verify reset exit"

我看代码其实不应该是这样的,但暂时没找出来问题出在了哪里。

时隔一周回头再来

修改makefile

修改project.mk

修改配置

成功

原理部分

这个Demo的软件框图如下

CNN Model 卷积神经网络模型

The KWS20 v.3 Convolutional Neural Network (CNN) model consists of 1D CNN with 8 layers and one fully connected layer to recognize keyword from 20 words dictionary used for training.

class AI85KWS20Netv3(nn.Module):
    """
    Compound KWS20 v3 Audio net, all with Conv1Ds
    """

    # num_classes = n keywords + 1 unknown
    def __init__(
            self,
            num_classes=21,
            num_channels=128,
            dimensions=(128, 1),  # pylint: disable=unused-argument
            bias=False,
            **kwargs

    ):
        super().__init__()
        self.drop = nn.Dropout(p=0.2)
        # Time: 128 Feature :128
        self.voice_conv1 = ai8x.FusedConv1dReLU(num_channels, 100, 1, 
                                                stride=1, padding=0,
                                                bias=bias, **kwargs)
        # T: 128 F: 100
        self.voice_conv2 = ai8x.FusedConv1dReLU(100, 96, 3, 
                                                stride=1, padding=0,
                                                bias=bias, **kwargs)
        # T: 126 F : 96
        self.voice_conv3 = ai8x.FusedMaxPoolConv1dReLU(96, 64, 3, 
                                                       stride=1, padding=1,
                                                       bias=bias, **kwargs)
        # T: 62 F : 64
        self.voice_conv4 = ai8x.FusedConv1dReLU(64, 48, 3, 
                                                stride=1, padding=0,
                                                bias=bias, **kwargs)
        # T : 60 F : 48
        self.kws_conv1 = ai8x.FusedMaxPoolConv1dReLU(48, 64, 3, 
                                                     stride=1, padding=1,
                                                     bias=bias, **kwargs)
        # T: 30 F : 64
        self.kws_conv2 = ai8x.FusedConv1dReLU(64, 96, 3, 
                                              stride=1, padding=0,
                                              bias=bias, **kwargs)
        # T: 28 F : 96
        self.kws_conv3 = ai8x.FusedAvgPoolConv1dReLU(96, 100, 3, 
                                                     stride=1, padding=1,
                                                     bias=bias, **kwargs)
        # T : 14 F: 100
        self.kws_conv4 = ai8x.FusedMaxPoolConv1dReLU(100, 64, 6, 
                                                     stride=1, padding=1,
                                                     bias=bias, **kwargs)
        # T : 2 F: 128
        self.fc = ai8x.Linear(256, num_classes, bias=bias, wide=True, **kwargs)

    def forward(self, x):  # pylint: disable=arguments-differ
        """Forward prop"""
        # Run CNN
        x = self.voice_conv1(x)
        x = self.voice_conv2(x)
        x = self.drop(x)
        x = self.voice_conv3(x)
        x = self.voice_conv4(x)
        x = self.drop(x)
        x = self.kws_conv1(x)
        x = self.kws_conv2(x)
        x = self.drop(x)
        x = self.kws_conv3(x)
        x = self.kws_conv4(x)
        x = x.view(x.size(0), -1)
        x = self.fc(x)

        return x
The CNN input is 128x128=16384 8-bit signed speech samples.

试试烧录试kws20_v3

成功。

在编译烧录之前一定注意,要先make distclean 一下,不然会出问题的

尝试烧录 work15

cd /E/MAX78000/voice_light/work15/work15/kws20_demo/

报错喽

尝试烧录kws20_demo-riscv

$ cd /E/MAX78000/MAXSDK/Examples/MAX78000/CNN/kws20_demo-riscv/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频处理系列︱利用达摩院ModelScope进行视频人物分割+背景切换(一)

做了一个简单的实验,利用modelscope的人像抠图模型对视频流进行抠像并更换背景。 文章目录1 视频人像抠图(Video human matting)2 更换背景1 视频人像抠图(Video human matting) 地址链接:视频人像抠图模型…

2022定格 以史为鉴 擘画未来 砥砺2023

回望2022思绪万千 我们的家国情怀和社会担当,让我们与众不同。 每一个个体,每一天,每一月,每一年,都能且应该成为更好的自己。 我们要做未来的创造者,驱动他人最好的方式是点燃自己。 不放弃就会有光&a…

Js Promise理解和使用

js中的promise是一个异步编程的解决方案,语法层面上他是一个构造函数,名字为Promise()。 它的作用就是将一个任务task封装为一个Promise类的实例对象,这个对象会将任务自动运行并得到任务结果,而且在得到结果的过程中并不会影响到…

区间预测 | MATLAB实现Lasso分位数回归时间序列预测

区间预测 | MATLAB实现Lasso分位数回归时间序列预测 目录 区间预测 | MATLAB实现Lasso分位数回归时间序列预测效果一览基本描述模型描述程序设计学习总结参考资料效果一览 基本描述 LASSO回归的特点是在拟合广义线性模型的同时进行变量筛选(variable selection)和复杂度调整(…

D2. RGB Substring (hard version)(尺取)

Problem - 1196D2 - Codeforces 通用领域 医学 计算机 金融经济 你有一个包含n个字符的字符串s,每个字符是R, G或B。 你还得到一个整数k。你的任务是改变初始字符串s中的最小字符数,这样在改变之后,将会有一个长度为k的字符串…

C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(一)

C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计一、实验目的二、 实验内容2.1、实验内容1:通过下面的程序掌握各种格式转换符的正确使用方法三、 实验步骤3.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确…

[OC学习笔记]启动流程

我们的app是如何从桌面图标被启动的嘞?这个问题值得探究。 冷启动与热启动 这两个启动的区别其实很简单,就看启动之前手机后台是否有app存活。 名称区别冷启动启动时,App的进程不在系统里,需要开启新进程。热启动启动时&#x…

前端学习笔记006:React.js

(前面学了那么多,终于到 React 了~) React.js 大家应该听说过,是用于构建前端网页的主流框架之一。本文会把 React.js 开发中会用到的东西(包括 React 核心,React 脚手架,React AJAX&#xff0…

nodejs接收时get请求参数

在http协议中,一个完整的url路径如下图 通过下图我们可以得知,get请求的参数是直接在url路径中显示。 get的请求参数在path资源路径的后面添加,以?表示参数的开始,以keyvalue表示参数的键值对,多个参数以&符号分…

Typescript中函数类型

不给参数定义类型,会报错,如下: 常见写法 function add1(x: number, y: number) {return x y; }function add1_1(x: number, y: number): number {return x y; }const add2 function (x: number, y: number): number {return x y; };con…

第一天作业

第一天 配置ansible学习环境实现以下要求1.控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应(普通命令,特权命令)任务2.控制主机连接受控主机通过普通用户以免密验证远程控住受控主机实施指定(普通命令&…

【Wayland】QtWayland启动流程分析

QtWayland启动流程分析 QtWayland版本:6.4.0 QtWayland的服务端(CompositorServer)入口点是QWaylandCompositor这个类,可以参考官网提供的example,其路径为:examples\wayland\minimal-cpp 下面基于minimal-cpp这个例子&#xff…

详解 Redis 中的 AOF 日志

AOF(Append Only File)追加写, AOF 日志它是写后日志,“写后”的意思是 Redis 是先执行命令,把数据写入内存,然后才记录日志,如下图所示: 后写日志有什么好处呢? Redis …

FPGA知识汇集-串行 RapidIO: 高性能嵌入式互连技术

本文摘自:德州仪器网站 串行RapidIO: 高性能嵌入式互连技术 | 德州仪器 (http://ti.com.cn) 串行RapidIO针对高性能嵌入式系统芯片间和板间互连而设计,它将是未来十几年中嵌入式系统互连的最佳选择。 本文比较RapidIO和传统互连技术的优点&#xff1b…

Windows内核--GUI显示原理(6.1)

传统的Windows图形处理 在Vista之前,图形子系统内核部分win32k.sys 通过DDI接口操作显示驱动, 显示驱动通过ENG接口调用win32k.sys. From: Windows 2000 显示体系结构 显示驱动程序的作用 不同显示驱动程序负责对于不同显示设备的优化。GDI仅负责标准位图…

使用python的parser.add_argument()在卷积神经网络中如何预定义参数?

在训练卷积神经网络时,需要预定义很多参数,例如batchsizebatch_sizebatchs​ize,backbone,dataset,datasetrootbackbone,dataset,dataset_rootbackbone,dataset,datasetr​oot等等,这些参数多而且特别零散,如果我们最初不把这些参…

我国制造行业 工业控制系统安全控制措施建设思考总结

声明 本文是学习GB-T 32919-2016 信息安全技术 工业控制系统安全控制应用指南. 下载地址 http://github5.com/view/585而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 工业控制系统安全控制概述 从概念上来说,工业控制系统的安全与其它领域…

【网络】网络发展,网络协议,网络传输流程,地址管理

目录 1.计算机网络背景 1.1网络发展 局域网和广域网 1.2 协议 2.网络协议初识 2.1协议分层 2.2OSI七层模型 2.3 TCP/IP 五层(或四层)模型 网络和操作系统之间的关系 2.4重谈协议 -- 计算机的视角,如何看待协议? 2.5 网…

python带你采集淘/苏/唯/考四大电商平台商品数据

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 环境介绍: python 3.8 越稳定越好 pycharm 2021专业版 一、苏宁 模块使用: selenium >>> pip install selenium 3.141.0 Python当中的模块 操作 浏览器的驱动 Chrome浏览器 Chromedr…

2023北京国际残疾人用品展览会|福祉博览会

全 称:2023中国国际福祉博览会暨中国国际康复博览会 英 文:Care & Rehabilitation Expo China 2023 时 间:2023年5月21-23日 地 点:北京首钢会展中心(1-3号馆) 主 办:中国残疾人联合会 承 办…