自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 毕业设计——基于STM32的家庭健康监测系统

这是本科时的毕业设计,想着之后读研了,研究方向是机器学习了,可能不会这么再碰32或者51之类的板子了,就想趁着还没有忘记就来梳理一下,纪念陪伴了我两年的硬件朋友们,也作为一个足迹。基于STM32的家庭健康监测系统该设计是主要功能如下:(1) 实时的采集心率、温度、烟雾浓度等信息;(2) 实时的显示心电图以及温度数值信息;(3) 实现跌倒的判断,并且在跌倒时发出报警;(4) 实现吸烟警告,在吸烟时发出报警;(5) 实现将温度、心率、姿态解算数据、烟雾浓度等发送至云平台;

2021-08-15 19:12:55 76941 189

原创 嵌入式工程师入门学习大纲

2、嵌入式开发基础:Linux概述安装,Shell命令,vim编辑器,GCC,GDB,Makefile,交叉开发环境构建;2、QT编程开发:QT开发基础,QT布局与控件,QT绘图,QT事件,QT网络通信,QT数据库,QT移植;3、嵌入式Linux系统编程:Shell编程,文件编程,串口编程,进程编程,线程编程,网络编程;1、ARM体系结构:ARM体系,ARM指令,Thumb指令,汇编程序设计,逻辑程序开发;3、驱动程序开发:驱动架构模型,字符设备驱动,块设备驱动,网络驱动;1、C++语言编程基础;

2024-06-27 12:25:07 157

原创 嵌入式操作系统——Bootloader概述

Bootloader是硬件启动的引导程序,是启动操作系统的根本;是在操作系统内核或用户程序运行之前的一段小程序;通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用准备好环境;在一般典型的系统中, 整个系统的加载启动任务就完全由Bootloader来完成。U-boot (Universal Boot Loader) 是德国DENX小组开发的用于多种嵌入式CPU的Bootloader程序。遵循GPL条款。

2023-08-29 11:09:38 4550

原创 Linux环境编程——进程(一)

命令:ps -ef 与ps aux的区别是显示的信息要少一点,不显示状态了,但是可以看到父子进程关系。进程复制:堆空间,栈空间、代码、全局变量都复制了,但两个进程共用内核。查看当前进程运行状态,类似Windows的任务管理器。1号进程是所有进程的祖先进程(init 进程)命令:ps aux 查看所有进程信息。df命令用于显示磁盘空间的使用情况。核心函数是execl();int 0x80是中断。SATA表示进程的状态。

2023-08-28 19:04:34 152

原创 嵌入式面试知识点——海康2020年笔试

单链表节点的插入:单链表节点的插入操作是在指定位置插入一个新的节点,使得新节点成为该位置的元素,原来的元素及其后续元素后移一位。堆分配的内存容易产生内存碎片,因为堆是不连续的内存区域,当频繁地申请和释放不同小的内存时,就会导致空闲内存分散成许多小块,无法满足大块内存的需求。序列号和确认应答:TCP为每个字节的数据都分配一个序列号,发送端在发送数据后,会等待接收端的确认应答(ACK)报文,其中包含下一个期望接收的序列号。这样的函数可以实现文件内部的功能封装,也可以避免不同文件之间的函数名的命名冲突。

2023-08-22 00:07:07 477 1

原创 嵌入式通用面经——大疆嵌入式知识点

而ldr伪指令没有这个限制。异常向量表占32个字节,其中有一个预留的(0x14),ARM异常向量表地址默认在地址0,有些处理可以设置为0xFFFF0000地址处,具体看CPU手册。由于每个异常入口在向量表中只有4个字节,所以在异常向量表中每种异常都只放一条ARM跳转指令(发生异常后,处理器自动切换到ARM状态 ),跳转到对应的异常处理程序继续执行。特权模式中,除去系统模式,其余的5种模式都称为异常模式(在用户模式和系统模式开来这些都属于异常),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

2023-08-10 12:29:08 824

原创 Linux环境编程——标准IO(二)

在工作中如果存在日志读取一定用标准IO,因为文件IO没法只读一行ps:读文件用标准IO,读设备用文件IO,因为蓝牙等设置是实时的,不可能等缓冲区满了再输出,而且标准IO对某些设备可能不支持,而文件IO是底层的,更灵活。

2023-08-08 11:08:41 66

原创 Linux环境编程——标准IO(一)

这是由于缓存的原因,printf不是直接系统调用函数,它在直接写的时候并没有写给系统调用write()函数(底层函数只有wirte才能写),而是写入一个缓存区,当缓存区达到一定条件后才会触发系统调用write()函数,才会在屏幕上显示。标准IO是在不同系统调用之前加入一个缓存,让所有操作不是直接访问,而是现在缓存中存一存,等确实有必要的时候才进行系统调用,这样避免了频繁进行系统调用,提高了IO效率。总结:“>” 为标准输出重定向,"2>“为标准错误重定向,”&>"同时标准输出和错误重定向。

2023-08-04 11:53:34 106

原创 Linux环境编程——文件IO(二)

strlen函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到’\0’停止。而如果不在字符数组初始化的时候加上\0,那么strlen 得到的值就不是正确的数值,打印出来的结果也不是想要的结果。而sizeof 测量的是字符的分配大小,如果未分配大小,则遇到’\0’ 结束(包含’\0’ ,也就是strlen测量的长度加1),如果已经分配内存大小,返回的就是分配的内存大小。但是如何让程序运行2次呢?

2023-07-30 10:58:30 88

原创 Linux环境编辑——文件IO(一)

rw——- (即110 000 000,二进制对应10进制就为:6 0 0) 只有所有者才有读和写的权限,因此,代码为600。-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限。但是这样看着是挤在一起的,x后面不跟是默认是4个一起,因此x后面加一个1,一个字符一个字符的来看。-rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限。-rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限。

2023-07-28 11:30:18 91

原创 Linux环境编程——环境搭建(clion配置服务器)

下载时注意操作系统位数,64 位选择 x86_64 前缀,32 位选择 i686 前缀.下载 posix 版本⾜够,后缀随意。⽐如:x86_64-7.3.0-release-posix-sjlj-rt_v5-rev0.7z 是提供的离线安装。创建完成后,显示上传到Linux,但是这个目录是一个temp,因此需要在linux中创建一个目录apue。打开操作系统终端软件,⼀般为 cmd 命令⾏,敲⼊ gcc -v,检查设置是否。包,解压到⼀个⾮中⽂⽬录下,推荐在⾮ C 盘以外建⽴⼀个独⽴⽬录。

2023-07-26 15:25:48 1122

原创 Linux环境编程——框架

整数0:STDIN_FIENO整数1:STDOUT_FIENO整数2:STDERR_FIENOeg:但是对于系统调用,有时候不知道某些函数的用法及属于哪些头文件如何获取帮助信息工具:man手册特点:总共有7本帮助手册每本的作用域不同1:常用命令 2:系统调用 3:通用函数查找命令:man+数字+函数名如果是值man+函数名,如:man writeman 后面的命令的数字是1-7,常用的是前3本,前面有提到3个数字的意思。向一个对象写一段数据。

2023-07-26 10:16:34 136

原创 嵌入式经典总线协议

IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,‘0’表示主机发送数据,‘1’表示主机接收数据;IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定。

2023-07-11 21:06:25 282

原创 FreeRTOS中的任务延时列表(笔记)

xNextTaskUnblockTime 的值等于当前系统时基计数器的值 xTickCount 加上任务需要延时的值 xTicksToDelay。任务延时列表表维护着一条双向链表,每个节点代表了正在延时的任务,节点按照延时时间大小做升序排列。每次在SysTick中断就比较一下系统时基计数器的值xTickCount与下一个任务的解锁时刻变量xNextTaskUnblockTime的值,当 xTickCount 的值与 extTaskUnblockTime 相等时,则表示该任务延时到期了,需要将该任务就绪。

2023-05-19 11:40:07 536 1

原创 多优先级(笔记)

从最高优先级对应的就绪列表数组下标开始寻找当前链表下是否有任务存在,如果没有,则uxTopPriority减一操作,继续寻找下一个优先级对应的链表中是否有任务存在,如果有则跳出while循环,表示找到了最高优先级的就绪任务。就绪列表是一个数组,数组里面存的是对应就绪任务的TCB的xStateListItem节点,数组下标对应任务的优先级,优先级越低,对应数组下标的数字越小。例子,如图所示,该变量的前导零的个数为6。中定义的静态变量,用于表示创建的任务的最高优先级,默认初始化为0,即空闲任务的优先级。

2023-05-12 11:31:18 539

原创 FreeRTOS中的空闲任务与阻塞延时(笔记)

软件延时是让CPU等待达到延时效果。而RTOS的优势是可以充分发挥CPU的性能,永远不会让CPU闲着。RTOS中的延时叫做阻塞延时/* 获取空闲任务的内存 */ StackType_t IdleTaskStack [ configMINIMAL_STACK_SIZE ];在FeeRTOSConfig.h中定义的宏# define configMINIMAL_STACK_SIZE((unsigned short) 128) //(字,即512个字节)

2023-05-05 23:33:42 1632

原创 FreeRTOS中临界段的保护(笔记)

临界段是指在执行时不能被中断的代码段。在FreeRTOS中,临界段最经常出现的地方就是对全局变量的操作。Q1:什么情况下临界段会被打断?系统调度和外部中断。在FreeRTOS中,系统调度最终也是产生PendSV中断,在PendSVHandler中实现任务的切换,所以还是归结为中断。FreeRTOS对临界段的保护就是对中断的开和关的控制。

2023-04-17 15:09:20 651

原创 FreeRTOS中的任务与任务切换(笔记)

FreeRTOS中的任务调用与任务切换

2023-04-11 00:39:05 1630 1

原创 FreeRTOS中的列表与列表项(笔记)

FreeRTOS中与链表相关的操作均在list.h和list.c这两个文件中实现。其中,xLIST_ITEM 是在portmacro.h 中重新定义的数据类型。在FreeRTOS中,列表类似于c语言中的链表,列表项对应c语言中的节点。与c语言中双链表的节点插入类似。

2023-04-10 16:47:56 411

原创 SMO算法数学推导

书接上回:支持向量机(SVM)数学推导学习笔记将SVM寻找找超平面的问题转换其对偶问题为:L=max⁡α∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxiTxjs.t.∑i=1nαiyi=0,ai≥0L=\max_\alpha\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j\\s.t. \hspace{0.3mm}\sum_{i=1}^n\alpha_iy_i=0,a_

2022-10-15 15:02:20 577

原创 《最优化方法》拉格朗日对偶及KKT条件学习笔记

拉格朗日对偶经常被用来求解最优化问题,而机器学习的背后都是优化问题。SVM训练时,求解的原问题是一个凸优化问题,经过拉格朗日对偶变换后,可以将目标函数转化为凸函数。对偶,是解决最优化问题的一种常用的手段。它能够将一个最优化问题转化成另一个更容易求解的对偶问题。(最优拉格朗日乘子),若此对偶问题的全局(局部)对应的最优解为。满足强对偶时,可以通过求解对偶问题的解来得到原始问题的解。对于原问题为凸问题,KKT条件是。在原问题是凸问题的情况下,若。取最小值,求出极小值点带入。

2022-10-13 14:37:23 1334

原创 支持向量机(SVM)数学推导学习笔记

在机器学习中,支持向量机是在分类问题和回归问题中常用的监督式的机器学习算法。在n维欧式空间中,找到一个最佳的超平面,把数据分为两类,使得每个类到超平面的距离最远。给定数据集D={(x1,y1),(x2,y2),…,(xn,yn)}D=\{(x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)\}D={(x1​,y1​),(x2​,y2​),…,(xn​,yn​)},其中,x∈Rn,y∈{−1,+1}x\in R^n,y\in\{-1,+1\}x∈Rn,y∈{−1,+1}类似二维空间中直线

2022-10-04 18:35:59 1027

原创 One class learning(SVDD)

常见的分类问题分为二分类和多分类,而多分类可以拆解为多个二分类问题。在二分类问题中,分类器对一个的样本的判断为非正即负,分类结果一定是二者之一。理想情况下,二分类中的每类样本数据要求巨大且相等。但是在现实世界却往往是相反的,在二分类问题中,正负类样本可能是严重失衡,这种情况也有解决的办法,那就是不平衡性学习。而考虑到极端情况,某一类样本少到几乎没有,但是又及其重要时应该如何分类?这就出现了 one class classification。仅有一类样本用于训练,而其他类别总称为(outlier)信息缺失

2022-09-30 22:15:56 1588

原创 成功找到ModuleNotFoundError: No module named ‘sklearn.ensemble.weight_boosting‘的解决方法

成功解决ModuleNotFoundError: No module named 'sklearn.ensemble.weight_boosting'

2022-09-19 16:01:56 1523

原创 word转换为pdf后图片失真的解决办法

在写论文的时候图片导出或者另存为PDF文件发现不行,图片仍然不清晰,甚至有些矢量图失效了,在word的选项设置里面虽然修改了,但是仍然不行于是真正硬核的方法来了

2022-07-08 09:41:08 7619 7

原创 Wasserstein距离

Wasserstein距离定义:W(P1,P2)=inf⁡γ∼∏(P1,P2)E(x,y)∼γ[∥x−y∥]W(P_1,P_2)=\inf_{\gamma \sim \prod(P_1,P_2)}E_{(x,y)\sim\gamma}[\|x-y \|]W(P1​,P2​)=γ∼∏(P1​,P2​)inf​E(x,y)∼γ​[∥x−y∥]解释:∏(P1,P2)\prod(P_1,P_2)∏(P1​,P2​)是P1P_1P1​和P2P_2P2​分布组合起来的联合分布的集合。对于每一个可能的联合分布γ\g

2022-05-25 11:49:30 776

原创 boost大家庭

2022-05-03 23:45:39 811

原创 数据归一化/标准化

什么是归一化把预处理的数据映射到 [0,1][0,1][0,1] 或 [−1,1][-1,1][−1,1] 之间的小数来处理。为什么要归一化维基百科的解释:1. 归一化后加快了梯度下降求最优解的速度;如果不进行归一化,由于特征向量中不同特征的取值相差较大,会导致目标函数变“扁”。这样在进行梯度下降的时候,梯度的方向就会偏离最小值的方向,走很多弯路,即训练时间过长。如果进行归一化以后,目标函数会呈现比较“圆”,这样训练速度大大加快,少走很多弯路。2. 归一化有可能提高精度;归一化不同量纲的

2022-04-18 13:15:51 691

原创 《机器学习》------模型评价指标

错误率(error rate):分错样本占总样本的比例;对于数据集 DDD,分类错误率定义为:E(f;D)=1m∑i=1mI(f(xi)≠yi)E(f;D)=\frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)\neq y_i)E(f;D)=m1​i=1∑m​I(f(xi​)​=yi​)精度(accuracy):精度 = 1 - 错误率精度的定义为:acc(f,D)=1m∑i=1mI(f(xi)=yi)=1−E(f;D)\begin{aligned}acc(f,D)

2022-04-12 16:56:35 1115

原创 【论文阅读笔记】基于分类器预测置信度的集成选择| Ensemble Selection based on Classifier Prediction Confidence

Ensemble Selection based on Classifier Prediction Confidence | 基于分类器预测置信度的集成选择[Abstract]集成选择是集成学习中研究最多的课题之一,因为选择基分类器的子集可能优于整个集成系统。近年来,引入了许多集成选择方法。然而,其中许多方法都缺乏灵活性:要么为所有测试样本预先选择一个固定的分类器子集(静态方法),要么分类器的选择取决于定义能力区域技术的性能(动态方法)。本文提出了一种综合考虑分类时各基分类器置信度(confidence

2022-03-19 22:18:04 1655 2

原创 《深度学习》------生成对抗网络(GAN)学习笔记

1.生成对抗网络的(GAN)的原理GAN的思想:一种二人零和博弈思想(two-player game),博弈双方的利益之和是一个常数。就像电影《猫鼠游戏》,生成网络G可以被看做是假支票的制造者,他们试图制造假支票并且在不被发现的情况下使用,而辨别网络类似于警察,他们试图检测假支票。这个游戏中的竞争促使两个团队改进他们的方法,生成对抗网路(GAN)分为两个部分:生成网络G(Generator)和判别网络D(Disciminator)(1)生成网络G:生成器,负责生成假数据(2)辨别网络D:辨

2022-01-21 19:46:21 4136

原创 《机器学习》------AdaCost学习笔记

Adacost 是Adaboost算法的变种目前的分类算法大多都强调准确率,但对于我们实际研究的问题来说可能不是特别的符合。例如:在1000个人中,有10个人得癌症,一般的非代价敏感(Non Cost-Sensitive)学习算法可能会把几乎所有人都分为“健康”的这一类,虽然这样做的准确率很高,但是对于我们研究的问题来说(找出患病的人),却是无意义的。并且,把癌症患者误诊为健康者,让患者错过最佳治疗时间,这样的代价是极其高昂的,远大于把健康者误诊为癌症患者的代价。因此,引入代价敏感(Cost-Sens

2021-12-21 23:03:11 3060

原创 《机器学习》------实验五(综合实验)

实验内容:使用CTG数据将胎儿的健康分为正常,可疑或病理性。数据描述:对胎儿健康进行分类,以防止儿童和产妇死亡。降低儿童死亡率反映在联合国的若干可持续发展目标中,是人类进步的关键指标。联合国预计,到2030年,各国将结束可预防的5岁以下新生儿和儿童的死亡,所有国家都力争将5岁以下儿童的死亡率降低到至少每1000活产25人。与儿童死亡率的概念平行的当然是孕产妇死亡率,其占妊娠和分娩期间和之后(截至2017年)的295 000例死亡。这些死亡中的绝大多数(94%)发生在资源贫乏的地区,大多数可以预防。

2021-12-12 00:51:09 6196 6

原创 《机器学习》------实验四(k-means聚类)

实验内容:1.复现,K-means的两个案例:iris和基于经纬度的城市聚类。2.对于给定的项目,自行编写程序,使用K-means算法不同含量果汁饮料的聚类:某企业通过采集企业自身流水线生产的一种果汁饮料含量的数据集,来实现K-Means算法。通过聚类以判断该果汁饮料在一定标准含量偏差下的生产质量状况,对该饮料进行类别判定。加载数据集,读取数据,探索数据。样本数据转化(可将pandasframe格式的数据转化为数组形式),并进行可视化(绘制散点图),观察数据的分布情况,从而可以得出k的几种可能取

2021-11-28 16:37:02 5865 4

原创 《机器学习》------实验三(决策树)

决策树相关知识在之前《机器学习—决策树笔记》中已提到:https://blog.csdn.net/Naruto_8/article/details/120931619实验内容:对于给定的例题,基于决策树分类算法进行鸢尾花分类的练习。回顾课程内容,掌握决策树的核心知识点和三种经典算法。在熟悉原理的基础上,复现iris示例,了解每一部分代码的具体作用。将实验结果展示在报告中。在步骤2的基础上,自己编写程序,使用决策树分类算法实现两个实例:(1)威斯康星乳腺癌数据集(2)顾客购买服装数据集进行分

2021-11-24 16:00:13 5199 1

原创 《机器学习》------实验二(支持向量机)

问题:分别基于SVM的iris数据集和识别(1)构建SVM程序,实现对iris数据集、pima-indians-diabetes数据集的分类。(2)要求分别使用线性SVM和核化SVM方法实现。并对比分析两种方法的区别。(将数据集划分成训练集和测试集(或将数据7:3分,或采用5折交叉);数据集下载地址:http://archive.ics.uci.edu/ml/datasets/Iris对于iris数据集:#作 者:Asita#开发时间:2021/11/19 20:45from sk

2021-11-21 20:06:29 6195 1

原创 《机器学习》------实验一(回归)

问题一:对于线性回归问题,给定:w0∗=(1n∑iyi)−w1∗(1n∑ixi)(1)\begin{aligned}\mathbf{w^*_0}&=\left(\frac{1}{n}\sum_iy_i\right)-\mathbf{w_1^*}\left(\frac{1}{n}\sum_ix_i\right) \\\end{aligned}\tag{1}w0∗​​=(n1​i∑​yi​)−w1∗​(n1​i∑​xi​)​(1)w1∗=−∑ixi(w0∗−yi)/∑ixi2(2)\begin

2021-11-11 15:35:48 4620

原创 喵糖攻略方案

至于占格子这件事,应当有个策略,因为我们是一个团队,这个策略称之为喵糖攻略方案。首先来说具体的方案:**第一步(中午8.50pm)(2人)**:我们先派出两人在双倍时刻把家周围的46个格子占了(一定是只能两人)并且需把手里的骰子扔完用于卡关键位置举个栗子:如图所示,我方为左下角,我们仅需派出两人把红线圈着的6个格子占领,并且在标黑的两个格子处(关键位置)需在双倍扔完所有骰子(即卡关键位置保护后方4颗)并且占格子的时间应该错开第一步总说就是派两人在双倍时间开局占6~7颗并卡住关键位置即可。第

2021-11-03 23:09:38 1053 1

原创 课程笔记之《论文写作》

今天听见了实验室的师兄发表了一篇 TransTransTrans ,哇,那叫一个劲的羡慕啊,光羡慕不管用啊,得实干才行呀。目前研一,尚未开启paper maker 之路,感觉已经落后了好多呀,不过斗志似乎被点燃了。俗话说,搞计算机的,都卷一点,不寒碜。因此,论文虽还没有写,但东西(笔记)得先准好,磨刀不误砍柴工嘛。此帖是关于老板讲的论文写作这门课进行笔记梳理,一来是给大家做一个分享,二是在自己写论文的时候就可以回来重温一下笔记,尽量避免踩坑哇。这是老板的博客 https://blog.csdn.net

2021-11-03 15:35:24 1247

原创 机器学习---基本术语

目前是自学机器学习,一些基本的概念从西瓜书中摘录1、基本术语数据集(data set) :数据的集合数据集中的一个记录或描述称为“示例”、“样本”(instance)属性或特征:反映事件或对象某方面的特征或表现 (feature)属性空间:属性张的空间 (attribute space)一个示例为样本空间中的一个点,因此一个示例也称为“特征向量” (feature vector)维度:一般地,令 D={x1,x2,...,xm}D = \{\bm{x_1,x_2,...,x_m }\}D=

2021-10-28 00:43:44 938

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除