自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【不使用深度学习框架】多层感知机实现手写Minist数据集识别

手写Minist识别是一个非常经典的问题,其数据集共有70000张28*28像素的图片,其中60000张作为训练集,剩下的10000张作为测试集,每一张图片都表示了一个手写数字,经过了灰度处理。本文延续前面文章提到的多层感知机,在这里完成更复杂的任务,这个也可以作为分类任务的代表。

2024-05-05 19:26:59 1026

原创 【机器学习原理】决策树从原理到实践

基于树的模型是机器学习中非常重要的一类模型,最基础的就是决策树,本篇主要讲述决策树的原理和几类最常见的决策树算法,这也是更复杂的树模型算法的基础。

2024-04-27 13:09:53 1045

原创 【机器学习理论到实践】神经网络推导和代码实现

神经网络是深度学习的基础,最重要的就是熟悉里面的前向传播和反向传播。本文首先从理论切入,首先讲了前向传播,对于反向传播部分,分为了两个部分分别是简单模型(两层)和扩展模型(多层),原理之后是代码部分。

2024-04-20 21:47:19 710 2

原创 【机器学习入门】推导超级详细,一文讲清楚支持向量机(SVM)【从原理到代码】

支持向量机(SVM)是机器学习中非常经典的一个模型,所以我就把这个作为第二个深入学习的机器学习模型,然后发现居然还挺难的(调包侠流下无能泪水)。参考了很多博客,但是大部分博客都是讲一部分,要么数学部分比较详细,要么后面的推导部分比较详细,本篇汇集了百家之长,其中我也尽量详细通俗给出了我的一些理解,特在此记录一下。其中可能存在一些错误,或者有些地方我也理解的不到位,在这些地方我都给出了参考博客,可以参考这些博客。

2024-04-18 21:00:06 1058 2

原创 机器学习理论入门---线性回归从理论到实践

线性回归是机器学习里面最简单也是最常用的算法,理解了线性回归的推导之后对于后续的学习有很大帮助,所以我决定从这里开始深入学习相关的机器学习模型。本篇首先从开始切入,然后介绍,再到。本人也是入门哈,有什么错误望轻喷。

2024-04-16 13:53:58 682

原创 基础数学问题整理

最近刷了一些关于基础数学问题的题目,大致是关于,题目来自洛谷的,很多思路还是之前没有见过的,都是简单到一般难度的题目(橙、题、绿题),特别做个整理。

2024-02-05 15:00:00 903 1

原创 LZW的编码和解码

不同于哈弗曼编码针对于每个元素编码,LZW主要针对字符串的编码优化,也就是把出现频率高的字符串压缩成一个字符表示,这也是大名鼎鼎的GIF采用的压缩格式。。

2023-12-02 22:40:58 321

原创 巴特沃斯滤波器和陷波滤波器的Python实现(基于Scipy)

巴特沃斯滤波和陷波滤波在信号处理中很常见,很多论文中也会有所涉及,前者可以滤除高频段、低频段信号或者通过一定频率的信号,后者可用于滤除特定频率的信号,本人并非通信专业,在信号的理论知识方面比较匮乏,因此本文主要围绕代码实现展开。本人在查找资料的过程中,发现很多博客对函数的介绍都是一笔带过,很少展开说明,因此本文会比较详细说明各个函数的使用方法还有最终结果的实现效果,就当做是做个记录。

2023-07-20 13:23:37 2647

原创 PID控制---基于python模拟

PID是控制中非常经典的一个模型,利用P(比例)、I(微分)、D(积分)三者相互合作来实现对一个信号的闭环控制,同时可以让信号波形平滑变化而不是突变。以下主要是结合一个python实现的控制速度的程序来模拟PID的过程。

2023-04-27 22:18:57 3270 4

原创 遗传算法的概念和python实现

遗传算法就是借鉴生物学中的遗传,首先生成若干种群,内有一些个体,也就是解,对不同解设定适应度,采用算子产生新解,不断在种群内遗传优秀基因,最终达到优化的目的。所以最终一定有若干个群体,内部的个体都是比较优秀的,不优秀的就被淘汰了。

2023-04-19 15:13:55 799

原创 偏航角、俯仰角、横滚角的理解

最近研究IMU陀螺仪,经过一早上的调试,最后发现根本看不懂xyz三个角度的度数是怎么来的,看了一些教程,也觉得不够直观,去了b站找了个视频,发现讲解的还不错,顺便也加上自己的一些理解,但是写的可能并不是很直观,但是应该可以提供一点思路。

2023-04-11 19:59:14 12619 6

原创 用最通俗的方式理解LSTM和重要参数

LSTM---长短期记忆递归神经网络是一个非常常用的神经网络,其特点在于该网络引入了长时记忆和短时记忆的概念,因而适用于一些有着上下文语境的回归和分类,诸如温度预测或是语义理解。从利用pytorch来构造模型的角度来看,该模型相比于一般的模型会有一些不同的地方,尤其是在参数的设置上,本文尝试以一个相对通俗的方式来解释本人的一些理解。

2023-04-01 08:55:03 2447 2

原创 PLS-DA分类的实现(基于sklearn)

既可以用来分类,也可以用来降维,与PCA不同的是,PCA是无监督的,PLS-DA是有监督的。与PCA不同,PCA是无监督,PLS是“有监督”模式的偏最小二乘法分析,当样本组间差异大而组内差异小时,无监督分析方法可以很好的区分组间差异。反之样本组间差异不大,无监督的方法就难以区分组间差异。另外如果组间的差异较小,各组的样本量相差较大,样本量大的那组将会主导模型。有监督的分析(PLS-DA)能够很好的解决这些问题。

2023-03-23 09:00:03 4032 18

原创 深度学习模型剪枝的实现

对于深度学习来说,比较复杂的模型往往有着不错的识别效果,但是复杂的模型往往对算力要求也比较高,在一些对于实时性要求比较高或者算力比较小的应用场景中,这时复杂的模型往往不能很好达到预期效果,这时候就要进行模型的剪枝,提高模型的运算速度。剪枝也就是将这个参数置为0,消除这些节点与后面的联系,从而降低运算量,本文主要基于对于模型剪枝的实战展开。

2023-03-16 09:14:06 1355

原创 C#窗体应用程序可能会遇到的一些奇怪问题

最近在上程序实训课,写一个管理程序,主要是用了C#,在VS2017平台,在开发过程中自然是少不了很多奇怪的问题,做个记录。目前主要用到的数据库结构如下。有下面几个问题:问题1:.Conversion failed when converting from a character string to uniqueidentifier.问题2:ExecuteNonQuery 要求已打开且可用的 Connection。连接的当前状态为已关闭。问题3:CS0012 类型"Object"在未引用的程

2023-03-01 18:38:59 1198

原创 Trie树的构造与应用

Trie树就是字典树。我们在查字典时,不可能是看到个单词然后从第一页开始顺序查找,找到所需单词,一定是根据共享前缀来不断缩小查找范围,也就是如果查air,我们先查找a,再查找ai,再查找air,而ai开头的还有avian,那么这两个单词共享前缀ai,那么后面不同的作为子树,就形成了一个字典树的结构。下面主要说一说实现和应用。

2023-02-05 22:48:28 359

原创 Tarjan算法的应用---缩点与割点

Tarjan主要基于深搜,其中有两个非常关键的标记数组,分别是dfn和low,同时引入概念时间戳tt,也就是到达这个点的时间,实际上就是搜索到的次序,dfn记录每个点的时间戳,即第一次访问到的号次,low也就是能到达的最早的时间戳,下面分析。

2023-01-28 23:17:32 1073

原创 图论---最小生成树的简单应用

生成树是图论中比较重要的概念,本篇主要是讲几个简单的生成树的应用。

2023-01-20 09:37:39 1481

原创 图论----最短路的应用

这一篇主要记录几个关于最短路的题目,主要是基于Dijkstra和Floyd算法,由于Dijkstra不考虑负边权,所以这一篇没有考虑负边的问题,主要是几个实际应用

2023-01-03 12:47:48 487

原创 图论---拓扑排序的应用

最近研究了几道图论的题目,都是图论入门的算法,用的比较多的就是拓扑排序,多用于有着先后顺序的题目,也可以用来判断环,做个小总结。

2023-01-01 19:41:13 718

原创 P3884 [JLOI2009]二叉树问题

当然这道题因为有权值,所以求解过程略有改变,首先是统一深度,因为是x->y,所以x到跟是向根,路径权值为2,根到y是原远离,所以分情况讨论,如果是x深度大,那么在提升的过程中,结果要加上路程*2。这一道题分为三个问题,第一个问题是求深度,第二个问题是求最大宽度,第三个问题是求a->b的带权路径长度,这里的权指的是如果是向着跟走的路径权值是2,远离根的路径权值是1,例如8->6,那么8->1的路径是要*2,1->6是不需要的,所以是3*2+2=8,样例也就是这样来的。是先把两个深度统一,

2022-12-28 17:04:26 643

原创 逆序对---树状数组

所以要维护这么大的范围的数据其实是不现实的,无论是空间还是时间都是不可以的,但是这里比较特殊的是数字之间只有大小的关系,1 2 3和1 2 10本质是一样的,因此只要将数组排序之后用编号给各个数字重新赋值,利用形式大小来进入统计就可以,比如1 10 100直接变换为1 2 3,这样1e5的维护长度是可以接受的。关于后缀和的我还是不太清楚,因此我将其转化为了前缀和,这样差分求和也比较熟悉直观,也就是把1 10 100转为了 3 2 1,然后统计每个数加入时有多少个比它小的,道理还是一样的。

2022-12-23 23:15:18 763

原创 Mysql存储过程和游标的一点理解

存储过程的关键字是precedure,我们create一个新的precedure,然后前面说了存储过程就是函数,你得给他要算的人,所以把参数列表里面的empno前面加上一个in,表示是输入,因为你还要把值输出的,sql里面有没有return我不知道,但是我可以把参数列表里面的变量标记为out,表示输出,类似于其他语言的引用传参,如下;数据都是乱凑的,请勿当真。在我理解来其实就是编程语言里面常说的函数,了解过其他语言的同学对于函数不会陌生,不过这个名字是真的高大上,本质就是把值传进去,然后计算好把值传出来。

2022-12-02 22:25:37 657

原创 FCN的代码解读

最近浅研究了一下关于图像领域的图像分割的相关知识,发现水还是挺深的,因为FCN差不多也是领域的开山鼻祖,所以就先从这个方面入手。理论就不多讲很多了,网上一搜一大堆,主要就是解析一下代码部分。

2022-11-19 12:53:27 2377

原创 Add and Mex

所以对于任意的一轮,需要只要考虑所有可以落在这个区间内的数字的情况,所以在一开始的预处理,我们就需要把每个数字作为有效值出现在某一轮的值记录下来,比如n为10,a[7]为-2,那么a[7]的有效值是5(在[0,10]之内的值),出现在第一轮,那么第一轮的5就需要标记为有(利用set实现)。,因为最坏的情况是n个数字按照公差为1的等差数列排列,这时候要么是0,要么是n,其他情况一定是在区间(0,n)里面的数字,所以我们只要考虑每个数字在这个区间内的情况。

2022-10-14 19:43:25 307

原创 Snuke Panic (1D)

在这段时间内每个单元的takahashi(实际上是前面一系列最操作之后在这个位置的takahashi的最优配置)都可以移动到这个单元半径为det的单元格内,并且把这个单元格的已有长度带过去,如果可以更大那么就更新掉到达的位置,也就是覆盖掉。更新完之后就是物体出现之前的一瞬间的当前最优配置,这时候物体出现,只需要在相应位置给这个位置的takahashi加上长度,需要注意的就是加长度也要注意位置和时间的关系,至少要满足可以到达的条件才可以直接加上长度。

2022-10-10 20:48:08 292

原创 Getting in Shape

观察A...AB(1)A...AB(2)A...,连续的A就是不断累前两个位置的路线数量,到了B(1)后面的A,这个A的路线数量实际上就是前面的A...AB(1)串的总的路线数量,然后这些路线全部到达B(1)后面的A身上,然后以这些路为起点再出发向下传递,到了B(2)后面的A其实就是前面两个A..AB串的路线数的乘积,因为你怎么到我B(1)后面A的我不管,但是这每一条路线都会对应在A...AB(2)所有路线,符合乘法原则,更多组其实也是一个道理,就是将每一串A...AB单独的路线数相乘,而每一个A..

2022-10-08 14:31:11 434

原创 C++小游戏---坦克大战(二)(加入传送门)--附完整代码

上一篇坦克大战居然意外获得了一些关注,正好最近也完善了一些功能,同时也加入了一些自己想到的新元素,主要是关于穿越草地,加入传送门以及关卡模式的一些开发,所以就再发一篇补充来做个完结。

2022-10-03 08:14:12 3816

原创 C++小游戏---坦克大战(一)

坦克大战大家都很熟悉,就是守护自己的老家不要被炸掉,同时也要保证自身死亡次数在一定范围之内,消灭所有敌人。大部分的主要的程序就在上面,但其实很多部分都封装了一些细节,所以并不完整,只能表述大致的思路。同时做的不太好的就是坦克之间经常有重叠的情况,大致就是因为标记点的原因,也确实不知道该如何解决,而最终的实现代码写了千行,其中还是有不少可以优化的空间,由于水平原因,有一些功能如穿过草丛还是没有实现,不过有机会还是希望可以试试。

2022-09-23 21:14:58 1537 2

原创 伪C++开发连连看(补充)

这一篇是上一篇的延续,在原有的基础上修复了一些bug同时也新加入了一些内容,有需要可以看看。

2022-09-09 20:06:49 856

原创 伪C++开发小游戏---连连看

几个月之前就想要开发一个连连看小游戏,但是当时在算法这一步上面卡住了,之后也就不了了之。暑假末期将至,突然又想起了这个想法,正好这时候也有了一点思路,打了十几个小时终于最后做出了一个差不多的模样,写一篇笔记记录一下。

2022-09-07 18:54:41 1819 2

原创 从约数研究到余数求和

第一个就是对于n>k的时候,那么在i∈[k+1,n]这一段区间内,k%i一定是k本身,所以直接把这一段加到答案中,然后计算i

2022-07-16 12:31:07 146

原创 # [COCI2014-2015#7] PROSJEK

同时因为长度一定是大于等于k的,并且这一串数字一定是连续的,假设当前的右端点位于i位置,那么i加上前面一共k个数一定是在数字串内的,所以就需要在1--i-k中找到一个分界点j,将j--i这段区间的平均值看做i作为右端点,均值最大的区间,验证是否sum[i]-sum[j]>0,因为我们需要的是验证,也就是存在性问题,所以一定是让sum[j]越小越好,动态更新j使得j始终存储最小值,在代码就直接记录数字,也就是sumx。对于$30\%$的数据,保证$n\leqslant5000$。...

2022-07-15 12:29:45 189

原创 ​This Message Will Self-Destruct in 5s Editorial​

思路用h数组存储高度,那么表达式也就是 abs(i-j)==h[i]+h[j],假设 i>j (无所谓的),那么去掉绝对值也就是 i - j== h[i]+h[j] ,移项得到 i-h[i]==j+h[j],所以只需要找到这样的i和j的数量。引入map存储满足和i匹配的j+h[j]的j的数量,可以看到对于任意一组i,j,在扫描到i时, j 是匹配的,在扫描到 j 时,i 一定也是满足式子的,所以可以把计算分为两个阶段,扫描 i 时标记这一对,扫描到 j 时将这一对收集到答案中,体现到代码中其实...

2022-07-13 12:11:32 99

原创 64位系统树莓派部署yolo-fatestv2---超多坑

下面就opencv的安装,ncnn的部署,模型的移植和一些关于模型的修改展开首先是numpy然后是opencv所需的依赖安装好依赖之后就可以下载opencv了需要下载Opencv和OpenCV_Contrib两个压缩包,链接如下,可能要打开好几次才能进去,我是尝试了好几次OpenCV:GithubOpenCV_Contrib:Github4.x代表四点几的版本,后面的tags是细分,可以自行选择,我安装的是4.5.5选好版本之后点击Download ZIP下载,两个都要下载,然后传送到树莓

2022-07-07 19:27:27 2936 9

原创 Graph Destruction---反向建图

题目链接这道题比较有意思,是考的一个统计连通块的问题,但是题目给出的条件需要绕一个弯。题目给出一个建好的图,然后每次删掉节点,问你这时图中有几个连通块,连通块不难想到要用并查集求解,但是每次删掉一个是什么鬼,并查集可没说谁跟谁连在一起啊喂,所以你没法根据并查集然后根据删掉节点的去维护连通块个数。再想一想其实并查集就是不断做加法的过程,而题目给出的是减法,那减法反过来不就是加法了,所以考虑反向建图,动态维护。考虑当前正在考虑删掉 i 节点,那么也就是反向建图从 n 建到 i+1 节点时的连通块数量,所以每次的

2022-07-03 21:02:25 173

原创 数据压缩中的编码问题---堆生成哈夫曼树

DescriptionZC一天在看计算机的书籍的时候,看到了一个有趣的东西!每一串字符都可以被编码成一些数字来储存信息,但是不同的编码方式得到的储存空间是不一样的!所以ZC 就想是否有一种方式是可以得到字符编码最小的空间值!显然这是可以的,因为书上有这一块内容--哈夫曼编码(Huffman Coding);一个字母的权值等于该字母在字符串中出现的频率。所以ZC 想让你帮忙,给你一串个字符串,并让你判断这个字符串编码之后的空间值(即01串的长度)?Input第一行是一个数字n,表示有n组数据,然后每一组数据是

2022-06-25 22:21:43 260

原创 详解堆的应用---从堆的建立到调整再到堆排序

不同于内存分配的堆,这里的堆指的是数据结构中的一种类型如上图,堆具体来看是一个完全二叉树的数据结构(为什么是完全二叉树后面讲),分为大顶堆和小顶堆,大顶堆,也就是顶比较大,所以就是父节点大于两个子节点,小顶堆也就是反过来。那么如何利用这样的一个数据结构?例题:Description用已知的数据建立一个小顶堆,再对询问输出相应的结果。Input输入数据有多组对于每组测试数据,第一行两个整数n和m ( n,m...

2022-06-07 23:45:13 640

原创 归并排序(算法与实现)

归并排序作为一个能够在O(nlogn)的复杂度下完成排序的算法之一,其对于比较大的数据量有着不错的排序效果。下面解析一下归并排序的算法与实现。归并排序基于分治的思想,也就是将一个大的区间分为两个小的区间,然后只要左边实现了有序,右边实现了有序,接下去也就是并,将两个小区间合并为大区间,实现整体有序。下面是简单的演示:初始也就是序列4 1 5 3 2,我们要实现升序序列。我们以l为左边界,r为有边界,m=(l+r)/2为中点,将区间划分为[l,m],(m,r]两个小区间,然后接下去对让小区间进行归并,实现小区

2022-06-02 13:23:23 326

原创 快速排序---递归下的排序

本文从算法层面杰解析了快速排序的算法和实现和一些易错点的解释,适合快速排序的入门

2022-06-01 18:30:00 152

空空如也

空空如也

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

TA关注的人

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