自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于卡尔曼滤波的理解

卡尔曼滤波是一种用于估计系统状态的数学方法,它被广泛应用于控制系统、导航、机器人技术、金融等领域。在我的使用过程中,我认为卡尔曼滤波是一种状态估计方法,同时考虑到了历史状态与观测数据,用迭代的方式动态估计下一个时刻的状态。它的核心是进行信息融合,这种方法是动态变化的,可以持续更新模型。

2024-01-27 15:03:46 853

原创 【编程刷题笔记】让字符串成为回文串的最少插入次数

让字符串成为回文串的最少插入次数

2022-09-19 14:27:07 260 1

原创 【刷题笔记】动态规划--字符串最少修改次数

字符串最少修改次数

2022-08-17 00:07:50 3014 1

原创 【编程刷题笔记】差分数组

差分数组

2022-08-03 22:49:25 184

原创 【Python线程和进程学习】

网站:诚恳版、官方文档、详细版多线程和多进程多线程 threading: 单个CPU核心可以同时做几件事,比如电脑在放电影的过程中可以进行聊天。多进程 processing: 多进程让多个CPU核心可以一起干活,不至于只有一个干活而其他人空闲。主线程和子线程默认是同时跑的(加入join(),加入join()也需要等非守护子线程结束才能退出)。但是主进程要等非守护子线程结束之后,主线程才会退出Python的线程是操作系统线程,因此要有Python全局解释器锁。一个python解释器进程内有一条主线

2022-05-10 13:37:43 182

原创 【CV】特征提取

特征提取Hog 特征提取Hog是方向梯度直方图,是一种特征描述符。该技术统计图像局部区域中梯度方向的出现次数。HOG描述符关注对象的结构或形状。它比任何边缘描述符都好,因为它使用梯度的大小和角度来计算特征。对于图像区域,它使用梯度的大小和方向生成直方图。其具体计算和原理可以参考这篇文章SIFT特征提取SIFT (Scale-invariant feature transform), 尺度不变特征转换,是一种图像局部特征提取算法,它通过在不同的尺度空间中寻找极值点(特征点,关键点)的精确定位和主方

2022-04-11 15:35:35 3266

原创 【面试总结】常见的优化器

常见的优化器机器学习中,往往求解目标函数的最优解时,需要对函数进行进行最优化,因此会用到一些比较经典的优化器。总的来说可以分为三类,一类是梯度下降法(Gradient Descent),一类是动量优化法(Momentum),另外就是自适应学习率优化算法。1.梯度下降法(Gradient Descent)首先对目标函数J(θ)J(\theta )J(θ)关于每一个参数θi\theta_iθi​求偏导数,把求得的各个参数以向量的形式写出来就是梯度。梯度是函数值变化最快的地方。其计算过程是沿梯度下降的方向求

2022-03-27 23:24:33 2143

原创 【面试总结】SVM

SVM简介支持向量机(support vector machines, SVM)是一种分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器;SVM的的学习策略就是最大化间隔,可化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM还包括核技巧、软间隔等,其基本的原理图如下。正像图中展示的样子,SVM解决的是分类问题,就是寻找一个超平面(红色的线,原始的是线性的)将图中的圆圈和五角星分开,并且要求正负样本到超平面的几何间隔最大(增加鲁棒性),其中蓝色的圈或者五角星就是支

2022-03-21 14:32:17 982

原创 【面试总结】快速排序

快速排序一把辛酸泪,在面试某翻译软件公司的时候。面试官:同学啊,知道快排吗?我:嗯嗯面试官:你能口诉一下快排原理吗我:额,这个,那个,巴拉巴拉一堆(奈何语言表达能力比较差,后面详细描述)面试官:你这也不行啊,太拉跨了吧,你直接说一趟快排结果是什么吧我:一趟快排的结果就是选定的基准元素呆在它应该待的位置,并且在这个数组中它前面的数比它小,它后面的数比它不小(大于等于)面试官:有道理,那你写一下吧于是乎我掏出我的键盘,写下了下面的代码def quickSort(a,left,right):

2022-03-16 16:20:48 237

原创 【面试总结】BN的利弊

BN的利弊Why BN机器学习领域对于数据的假设是,.数据间独立同分布,而BatchNorm的作用是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。思考一个问题:为什么传统的神经网络在训练开始之前,要对输入的数据做Normalization?原因在于神经网络学习过程本质上是为了学习数据的分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另一方面,一旦在mini-batch梯度下降训练的时候,每批训练数据的分布不相同,那么网络就要在每次迭代的时候去学习以适应不同的分布

2022-03-14 16:54:51 3497

原创 【编程刷题笔记】返回倒数第k个节点

返回倒数第k个节点题目描述实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。示例:输入: 1->2->3->4->5 和 k = 2输出: 4来源:力扣(LeetCode)原题连接分析这个题目相对简单:遍历两次链表,第一次遍历求得链表的长度L,第二遍遍历到第(L-k)个节点,并返回该节点即可。遍历一次链表,将所有的链表的值存储在一个数组中,返回数组的[-k]元素(python语言的写法)题解这个题目还可以考虑使用快慢指针,实现一次遍历链表,

2022-03-02 09:56:59 102

原创 【编程刷题笔记】字符串轮转

字符串轮转题目描述字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例1:输入:s1 = “waterbottle”, s2 = “erbottlewat”输出:True示例2:输入:s1 = “aa”, s2 = “aba”输出:False来源:力扣(LeetCode)原题链接分析这个题目可以采用暴力法求解:遍历整个字符串,找出从S2[0:pos]不是S1字串的位置,然后拼接S2[p

2022-03-01 10:22:14 275

原创 【基本工具学习】Git学习及常用命令

Git学习及常用命令Git介绍Git是一个分布式版本控制系统,相比于集中式版本控制系统,解决了中央服务器的单点故障问题,在服务器断网情况下也可以进行开发,每个客户端保存的也都是整个完整的项目。另外其优点在于易于学习、性能好,具有廉价的本地库,方便的暂存区和多个工作流分支特性,性能由于Subversion,CVS,Perforce和ClearCase等版本控制工具。安装也比较简单,Git官网下载默认安装选项就可以了。学习资料:尚硅谷的B站git视频Git 的核心(1.)工作区、暂存区、本地库、远程

2022-02-24 15:56:56 222

原创 【编程刷题笔记】数组中的逆序对

数组中的逆序对描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P mod 1000000007数据范围: 对于 50 的数据, size≤104size≤10^4size≤104对于 100%的数据, size≤105size≤10^5size≤105数组中所有数字的值满足 0≤val≤10000000要求:空间复杂度 O(n),时间复杂度 O(nlogn)输

2022-02-17 17:08:04 435

原创 【编程刷题笔记】 数组中出现次数超过一半的数字

数组中出现次数超过一半的数字描述给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。数据范围:n≤50000,数组中元素的值 0≤val≤100000要求:空间复杂度:O(1),时间复杂度 O(n)输入描述:保证数组输入非空,且保证有解原题链接分析这个题目的正常难度不大,可以有几种解决方法(1)对数组进行排序,返回排序数组中

2022-02-17 15:52:23 345

原创 【编程刷题笔记】正则表达式匹配

正则表达式匹配描述请实现一个函数用来匹配包括".“和” * "的正则表达式。模式中的字符’.‘表示任意一个字符,而’ * '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配数据范围:1.str 可能为空,且只包含从 a-z 的小写字母。2.pattern 可能为空,且只包含从 a-z 的小写字母以及字符" . “和” * “,无连续的” * "。3.

2022-02-16 12:28:26 228

原创 【编程刷题笔记】 矩阵中的路径

矩阵中的路径题目请设计一个函数,用来判断在一个n乘m的矩阵中是否存在一条包含某长度为len的字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如[1,2,3,4][1,2,3,4][1,2,3,4]矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。数据范围:0≤

2022-02-16 11:15:45 163

原创 【编程刷题笔记】数组中只出现一次的两个数字

数组中只出现一次的两个数字题目描述一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。数据范围:数组长度 2≤n≤1000,数组中每个数的大小 0<val≤10000000要求:空间复杂度 O(1),时间复杂度 O(n)分析使用暴力法(遍历整个数组,统计数组元素出现的次数,然后找出只出现一次的元素)进行求解本例子需要的时间复杂度是O(n);因为需要存储每个元素对应出现的次数,因此空间复杂度是O(n),使用排序的方法,需要的时间复杂度是O(n

2022-02-15 17:27:48 221

原创 【编程刷题笔记】求1+2+3+...+n

求1+2+3+…+n题目求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。数据范围: 0<n≤2000进阶: 空间复杂度 O(1),时间复杂度 O(n)分析这个题目的难点在于不能使用乘除法,这样使得利用公式求解的方法失效。不能使用for、while等语句使得不能使用循环进行求解。不能使用if、else、switch、case等关键字及条件判断语句(A?B:C)使得不能使用一般递归方法失效。所以此题

2022-02-14 18:43:10 751

原创 【编程刷题笔记】滑动窗口的最大值

滑动窗口的最大值题目描述给定一个长度为 n 的数组 num 和滑动窗口的大小 size ,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2

2022-02-14 18:27:15 230

原创 【机器学习】线性回归(基于学习的方式)所用到的公式

线性回归个人观点:我这里所说的线性回归不完全等同于数学上严格的线性回归,这里的线性回归更偏向于利用学习的手段进行回归。1. 数据预处理这个数据的预处理不仅仅用在线性回归模型上,也是其他机器学习乃至深度学习中常用的方法,其最重要的步骤是对数据进行normalization。设输入的原始数据是X0X_0X0​,经处理后的数据为XXX,则数据预处理的过程可以看作X=X0−μσX = \frac{X_0 - \mu}{\sigma}X=σX0​−μ​2. 误差项我们可以认为真实值YYY是预测模型Li

2022-01-30 17:54:05 1126

原创 【编程刷题笔记】树的子结构

树的子结构题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)例如:A是左边的树,B是右边的树,很容易看出,B是A的子结构,因此返回为True牛客网题目链接题解这个题目的重点在于判断子结构,如果B是A的子结构,那么一定会有(1)B的根结点值等于A的某个节点A1A_1A1​的值(2)B的左子树的所有值等于A1A_1A1​的左子树的部分值(3)B的左子树的所有值等于A1A_1A1​的右子树的部分值因此这个题目的算法步骤可以描述如下:1.A和B的根节

2022-01-29 10:24:23 508

原创 【编程刷题笔记】链表中环的入口结点

链表中环的入口结点题目描述:题解代码题目描述:给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。例如:可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。牛客网题目链接题解这里用牛客上的一张图片写下官网解答的思路,不过我觉的官网的解释不太好,我重写一下自己关于这个思路的理解。这里我们假设从头结点到环的入口结点的距离是x,从入口结点B到相遇点C的距离(只走一次的距离)为y,环的长度为N。这里我们设置两个指针fast和slow,算法的步骤如下:(1)f

2022-01-24 11:51:19 466

原创 Pytorch的Dataloader类加载图像训练集

Pytorch的DataLoaer的使用(图像)

2021-12-15 17:49:42 1825 1

原创 Windows和ubuntu使用python脚本自动登录校园网

Windows和ubuntu使用python脚本自动登录校园网

2021-12-09 16:35:39 2618 4

原创 python和C++混合编程实现区域增长

python和C++混合编程实现区域增长这两天项目需要选取眼底图片的感兴趣区域,这个图片长这个样子:这个图片中除了黑色部分都是感兴趣区域,而黑色背景部分是一块连续的区域,用区域增长的方法能很快确定,于是我就拿matlab实现了一下,效果很nice,是我想要的内容。我的平台是在pyQT5上搭建的,怀着激动的心情用python按照matlab的思路写了一遍,其具体代码如下:ef region_grow(I,seed_x,seed_y): ''' The ALG of region_gro

2021-07-14 17:38:04 315

原创 VTK、ITK安装及ITK读取图片、VTK显示示例(CMake)

本文将简要回顾VTK、ITK安装过程中遇到的坑,便于排雷。详细说明如何使用ITK和VTK在QT中混合编程。 你可能会有疑问为啥要使用QT呢,使用VS不香吗?其实在我看来QT的界面做出来的比较漂亮,而且就IDE的界面和舒适感来说,QT都要比VS看起来炫酷,鉴于装x和将来的实用,选择QT来编程。VTK的使用也会让自己的界面看起来非常炫酷(带3D旋转的那种),重点是项目需求。至于使用ITK,主要是它里面有很多算法,特别是对于我这种菜菜来说,可以偷懒用他们现成的程序,但是不得不说,别人的东西

2021-05-13 14:26:26 2778

空空如也

空空如也

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

TA关注的人

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