- 博客(41)
- 收藏
- 关注
原创 感知机:教你用Python一步步实现
感知机问题描述感知机是二类分类的线性分类模型,输入为分类对象的特诊向量,输出为 ±1\pm 1±1,用于判别分类对象的类型。这么说有些抽象,下面举一个例子。就像上面这幅图,实例对应上图就是每个点实例的特征向量就是指这些点的横纵坐标,我们把他记为 (x1,x2)T(x_1, x_2)^T(x1,x2)T。我们根据每个点的颜色,将点分别标记为111和−1-1−1,也就是我们的输出 yyy 。利用这些已知坐标的红蓝点,我们需要训练下面这个模型,这个模型一共有333个参数(θ0,θ1,θ
2022-03-13 19:38:56
12899
7
原创 VQLS:变分量子算法解线性方程组
复现的算法为VQLS算法,用于处理线性方程组Ax=bAx=bAx=b的问题。这是一种变分量子算法,即用一个经典的优化器来训练一个含参的量子电路,整个算法的思路有些类似机器学习。代码参考了qiskit提供的VQLS示例10.17日晚重新看了一遍论文,才发现自己弄错了很多概念,例如:误以为分解AAA是为了作为量子态输入到电路,实际上他是作为门矩阵作用于含参xxx的流程分析我大致将该算法分为一下4个流程。搭建含参电路计算损失函数优化器进行梯度下降求解得标准化后的x图1 算法整体框架1.
2021-11-28 15:14:16
3113
12
原创 CDR:线性模型处理量子噪声处理方法
文章链接这篇文章乍一看内容挺少的,看下来感觉可以扩充很多知识点,展开学习可能需要花费更长的时间。这篇文章介绍了 Clifford Data Regression(CDR) 方法,用于处理量子噪声,该文章将CDR运用在QAOA、phase estimation上,并与zero-noise extrapolation(ZNE)方法进行对比,最后发现在处理大规模量子电路的噪声问题上,CDR方法具有更好的效果。CDR实现过程用一个含大量Clifford gate的量子电路制备一系列量子态Sψ=∣ϕi⟩S
2021-10-25 18:56:41
873
原创 sklearn 回归和聚类
回归和聚类线性回归线性回归的目标值为连续性数据定义:利用回归方程(函数)对一个或多个自变量(特征值)和应变量(目标值)之间的关系进行建模的一种分析方式。线性模型:y=∑i=1wi∗xiy = \sum_{i=1}{w_i*x_i}y=∑i=1wi∗xi线性回归的损失和优化原理线性回归的目标是求解模型参数,即wiw_iwi。线性回归流程:随意假定wiw_iwi。对比预测值和目标值,通过迭代更新wiw_iwi的值来减小误差。为对比预测值和目标值的差距,定义损失函数/cost/
2021-05-24 00:29:08
260
原创 机器学习:KNN完成英文手语分类
机器学习:KNN完成英文手语分类先来看一下标准的英文手语:本文KNN网络识别部分效果:(当然只挑选了几个字母):完成的主要流程为:通过mediapipe处理kaggle上的一个图片数据集,获取21个标志点的位置关系建立KNN模型模型检测建立数据集图片数据集来源Kaggle上的一个数据集,数据集链接。下载完成后我们得到是一堆128*128的图像,不会DL的菜鸡只能借助mediapipe完成标志点信息的提取(mediapipe的相关分装在另一篇文章中有介绍,也可见文末)。处理流
2021-05-16 11:32:12
974
9
原创 sklearn 分类算法
分类算法整理自黑马机器学习教程sklearn 转换器与预估器转换器在特征工程处理的步骤中有用到转换器,一般使用流程为:实例化一个转换器调用fit_transform()实际上fit_transform()可分为两个步骤进行,这里以标准化为例:x,=x−E(x)σ\displaystyle x^, = \frac{x-E(x)}{\sigma}x,=σx−E(x)fit:计算每一列的方差、均值transfer:根据fit得到的值,对该列的值进行转换估计器sklearn中,是一
2021-05-10 23:09:48
1708
原创 sklearn数据集和特征工程
scikit-learn数据集整理自黑马机器学习教程学习阶段可用数据集ucikagglescikit-learnsklenran数据集加载datasets.load_*():获取小规模数据集datasets.fetch_*(data_home=None):获取大规模数据集,需要从网络上下载,data_home为数据集下载目录。from sklearn import datasetsiris = datasets.load_iris()返回值均返回datasets.bas
2021-05-04 23:32:11
466
原创 Mediapipe 手势识别
Mediapipe 实现手势识别(石头剪刀布)封装函数(可跳过)手势判断完整代码相关连接环境:python3.8,pycharm2020硬件:罗技c505e基于前面一篇文章,我们已经能够实现手关键点的信息的提取,通过对这些信息的处理我们可以很轻松地进行手势识别。(完整代码见文末)先看一波效果图:封装函数(可跳过)为方便调用,先将之前关键点提取相关函数分装成类import cv2import mediapipe as mpimport timeimport mathclass ha
2021-04-29 17:27:36
17646
26
原创 Mediapipe 实现手势追踪
Mediapipe 实现手势追踪Mediapipe hands简单的手势追踪示例:部分api分析Hands的初始化配置手势信息的采集具体标志点提取相关连接环境:python3.8,pycharm2020硬件:罗技c505eMediapipe hands官网信息:https://google.github.io/mediapipe/solutions/hands.htmlMediapipe是谷歌开源的一个机器学习的库,里面有一些面部识别、手势识别的解决方案,且提供python、js等语言的封装。M
2021-04-26 21:48:13
8471
4
原创 用opencv玩别踩白块
用opencv玩别踩白块采集屏幕图像鼠标点击图像处理像素点对整张图像进行处理完整代码能玩,但是分数刷不高,主要受限于屏幕采集的速度python版本:3.8采集屏幕图像这里选用的是mss,一个快速采集屏幕图像的库函数https://github.com/BoboTiG/python-mss可用python -m pip install -U --user mss进行安装from mss import mssdef capture(): with mss() as sct:
2021-04-25 00:03:25
768
3
原创 C++ Linux临时文件读写
#include <iostream>#include <cstdlib>#include <cstring>#include <unistd.h>using namespace std;int WriteToTempFile(char* buff, size_t length){ //创建临时文件 char file_name[] = "/tmp/temp.file.XXXXXX"; int f
2021-02-10 16:28:03
1076
原创 C++ 访问Linux随机设备生成随机数
#include <iostream>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>using namespace std; int main(){ FILE* f = fopen("/dev/urandom", "rb"); int pwd_int = 0; char pwd_char[10];
2021-02-10 16:08:28
858
原创 C++ 操作符重载new delete
在C++中,操作符重载让C++拥有很大的灵活性,除了可以重载加减乘除等操作符,new、delete也可以被用户重载。我们为什么要重载new、delete? 重载new、delete主要有以下两个用途:当不想把内存分配到堆上时(new通常将内存分配到堆中)。可以做一些记录,例如跟踪内存的实际使用情况,用于检查内存是否存在泄露。...
2021-02-01 18:42:41
422
原创 杭电嵌入式课程设计——上位机
TCP服务器课程设计要求将电脑作为TCP服务器曲线绘制图表曲线文件写入课程设计要求如下图:我们选择采用C#进行开发,因为串口有距离限制不方便我们采集数据,所以我们决定用C#做一个TCP的服务器,进行数据观察以及数据采集。将电脑作为TCP服务器C#提供了丰富的网络开发API,根据socket通信基本流程图总结通信的基本步骤:创建一个用于监听连接的Socket对像;用指定的端口号和服务器的ip建立一个EndPoint对像;用socket对像的Bind()方法绑定EndPoint;用
2021-01-02 16:49:32
1172
7
原创 IAR编译zstack常见报错解决
本文开发环境如下:IAR版本:8.1硬件平台:TI的cc2530zstack版本:2.3.0-1.4.0持续更新上手cc2530如何打开一个工程编译常见报错Error[e16]: Segment RAM_CODE_FLASH (size: 0x27 align: 0) is too long for segment definition. At least 0x4 more bytes needed. The problem occurred while processing the segm
2020-12-10 13:10:39
3538
10
原创 STM32 PWM寄存器配置任意路输出
PWM使能时钟定时器时钟引脚时钟初始化引脚复用配置PWM输出配置设置自动装载值和分频配置PWM输出模式通道使能占空比配置使能被大佬学长的K66的库惯坏了,不习惯用普通的32的库了,正好要用到,就写一波。使能时钟输出PWM要使能两个时钟,一个是引脚的时钟还有一个是定时器的时钟。定时器时钟查看RCC中的RCC_APB1ENR寄存器。通过调用库函数即可,例如:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);引脚时钟初始化查看RCC中的R
2020-11-22 15:44:21
991
原创 TC264 DMA相关部分代码
DMADMA计脉冲数DMA处理UART中断DMA计脉冲数需要注意不要摄像头的中断冲突,优点就是不会占用cpu的时序,虽然影响也不是很大。//dma计脉冲数uint32 dummy = 0;//工具人参数static IfxDma_Dma_Channel dmaChn_cnt_left;static IfxDma_Dma_Channel dmaChn_cnt_right;void dma_cnt_pin(ERU_PIN_enum pin, uint8 l_or_r){ boolean in
2020-10-27 11:50:22
1767
2
原创 一文搞定msp430
msp430时钟管理效果查看gpio枚举头文件源文件定时器相关定时器中断初始化及其他中断处理函数pwm输出头文件源文件硬件iic源文件效果查看最近准备电赛,学习了一下msp430这块芯片,分享一些库函数代码。时钟管理将时钟倍频到24.9MHZ, 其中三个时钟源:Aclk为32.768K、smclk和mclk为24.96M。//倍频25M//最终时钟输出:Aclk 32.768K smclk mclk 24.96Mvoid get_clk(void){ //配置引脚复用功能
2020-10-10 15:58:43
834
原创 初学LINUX笔记(7)vim
LINUX概况一般指令模式光标移动及屏幕移动字符串搜索及替换删除复制粘贴编辑模式指令列模式存储离开vim环境变更vim暂存档相关vim的额外功能区块操作多文件编辑多窗口功能补全功能概况vim主要有三种模式:一般指令模式 command mode编辑模式 insert mode指令列命令模式 command-list mode三者转换关系如下图所示:需要注意的是:编辑模式和指令列模式不能直接转换下面具体展开介绍各种模式的指令一般指令模式光标移动及屏幕移动按键作用
2020-09-23 12:47:31
189
原创 初学LINUX笔记(6)磁盘和文件系统压缩打包备份
LINUX文件压缩常见压缩指令文件压缩文件压缩大概有两种方法:将数据中没有用到空间丢弃,便可以使文件占用的空间减小将文件中重复的数据进行统计常见压缩指令先来看一下linux环境下压缩文件的拓展名:拓展名.Zcompress程序压缩的文件.zipzip程序压缩的文件.gzgzip程序压缩的文件.bz2bzip程序压缩的文件.xzxz程序压缩的文件.tartar程序打包的数据,并没有经过压缩.tar.gztar程序打包的文件
2020-09-22 18:58:45
518
原创 初学LINUX笔记(5)磁盘和文件系统简单操作
Linux获取磁盘和目录容量dfdu实体链接和符号链接实体链接 Hard Link获取磁盘和目录容量主要用到了两个指令:df:列出文件系统的整体磁盘使用情况du:评估文件系统磁盘的使用量,常用在推估目录所占容量dfdf [-ahikHTm] filename下表为参数和选项:选项作用-a列出所有文件系统,包括文件特有的/proc等文件系统-k以Kbytes的容量显示各文件系统-m以MBytes的容量显示各文件系统-h以人们较容易阅读的Gby
2020-09-14 19:49:20
170
原创 初学LINUX笔记(3)文件和目录管理
这里写目录标题目录相关操作cd看着鸟哥的课程一步一步的学习,记录一些自己的笔记,侵删。目录相关操作先来看一下特殊的目录,需要记一下意义.代表此层目录…代表上层目录-代表前一个工作目录~当前用户身份所在的家目录~account代表account这个用户的家目录(account是一个账号的名字)下面来看一下几个常见处理目录的基本命令。cdchange directory,变换目录...
2020-08-26 23:33:04
1020
原创 初学LINUX笔记(2)文件和目录简述
文件管理及磁盘管理指令英文作用pwdprint working directory打印当前目录cdchange directory切换到指定目录mkdirmake directory在指定目录创建不存在的目录rmdirremove directory删除空的目录tree树状图列出目录(需要安装)...
2020-08-20 18:53:29
241
转载 Ubuntu安装图形化界面踩坑记录
虽然白嫖了好久的阿里云服务器,但一直都没怎么玩,心血来潮想弄个图形化界面玩玩,踩了不少的坑。踩坑记录putty的使用重启后正确打开图形化界面我用的是Ubuntu18.04putty的使用重启后正确打开图形化界面主要参考了这篇文章:https://www.jianshu.com/p/1acd274d5f9c...
2020-08-20 13:29:04
525
原创 初学LINUX笔记(1)初次接触
LINUX文件类型文件管理及磁盘管理文件类型文件管理及磁盘管理指令英文作用pwdprint working directory打印当前目录cdchange directory切换到指定目录mkdirmake directory在指定目录创建不存在的目录rmdirremove directory删除空的目录tree树状图列出目录(需要安装)...
2020-08-17 15:10:08
199
原创 TC264代码移植遇到的问题
记录一下自己再从k66将代码移植到TC264遇到的一些问题。目录图像错位问题问题描述解决方法字节对齐相关问题问题描述解决方法图像错位问题问题描述用的是逐飞的库函数,采集图像的大小为120*188,但是车子运行的时候会出现图像错位的情况,最后发现是TC264的dma-list的问题(个人推测),应该是dma的目标地址多改变或者少改变了一次,即原本为搬运到了 mt9v03x_image[0][0]的数据被错误的搬运到了mt9v03x_image[60][0]最终导致采集回来的图像出现错位的情况。(下图为
2020-08-11 17:14:16
2514
5
原创 SD卡 SPI时序
SD卡SD卡指令响应设置为spi模式初始化读取数据写入数据由于某芯片硬件不支持sd卡,无奈嫖sd卡底层,顺带了解一下sd卡(以前直接搬库)。SD卡指令sd卡一般为48位,最左边两位总是01,然后再试cmd,再接着指令参数,最后接上校验码和停止位1。下面是常用指令:CMD0 : 卡复位。CMD8 : SEND_IF_CONDCMD9 : 读取CSD数据CMD10 : 读取CID数据CMD12 : 停止数据传输CMD16 : 设置处理扇区CMD17 : 读取单个扇区CMD18 : 读
2020-05-16 15:29:24
3186
原创 Git基础操作-小白
Git中的复制粘贴为:复制操作 ctrl+ins粘贴操作 shift+ins初始化本地库先创建本地库的文件夹,然后cd到目标文件夹git init //初始化git(会出现一个隐藏的.git文件)签名:随意输入,只是用于区分开发人员 git config user.name <用户名> //项目用户级别 git config user.email <邮箱地址> git config --global user.name <>
2020-05-10 15:24:56
205
1
原创 面试题 04.06. 后继者
题目:设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。思路:实际上是否为搜索树不是很要紧,对树进行中序遍历即可。利用了两个全局变量,一个用来判断是否已经找到指定节点(简单讲就是一个标志位),另一个变量来记录返回的节点指针。讲起来简单,实际还是有些坑的(先贴代码)。代码:int flag = 0;stru...
2020-05-03 19:54:23
250
原创 23.合并K个排序链表
题目:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6思路:同时处理多个链表很复杂,但处理两个链表很简单,用递归即可解决。所以可以把问题转换为解决多个子问题:...
2020-04-26 10:50:15
146
原创 257.二叉树所有路径
题目:给定一个二叉树,返回所有从根节点到叶子节点的路径。题目很短。示例:思路:思路很简单,用DFS遍历所有节点,遇到子叶时,结束然后添加字符到输出中去。(一开始没有考虑到数字的位数和正负情况)其余情况和**22.括号生成**类似(就是处理字符串数组的方式相同,而且都是用DFS进行遍历)。代码:// 将数字转换为字符(处理正负及多位字符)void copyNum2Str (c...
2020-04-15 23:08:00
171
原创 486.预测赢家
题目:给定一个表示分数的非负整数数组。 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,……。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。思路:第一反应可以用dp处理,一开始写...
2020-04-13 22:53:44
282
原创 994.腐烂的橘子
题目:在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。这题竟然是简单(狗头)。**思路:**用BFS处理先将所以的烂橘子放入一个队列中,存储他的坐...
2020-04-09 17:16:46
203
原创 22.括号生成
题目:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。思路:用DFS处理,如下图(画的有点丑)处理的所有情况为:没有括号余量。左括号有余:添加左括号。右括号有余且已用左括号数 > 右括号个数:添加右括号。代码:/** * Note: The returned array must be malloced, assume c...
2020-04-09 17:02:48
173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人