- 博客(13)
- 收藏
- 关注

原创 一文了解M-Tree(M树)
这篇博客分析了论文Indexing Metric Spaces with M-tree(后文简称M-Tree或M树),并从以下几个方面介绍它:背景,结构,插入,分裂,range搜索和代码。M-tree使用圆形(二维情况)覆盖空间区域。每个圆涵盖了一部分数据所在的区域。对于查询目标,M-tree确定哪个圆和目标区域相交,若相交,则继续探测对应的圆。若不相交则滤除对应的圆,这意味着该圆涵盖的数据都不需要进行判断,减少了需要探测的数据量。本质上,M-tree从上到下就是一个大圆包含小圆的结构。
2020-12-01 17:49:10
5683
1

原创 一文了解局部敏感哈希(LSH)的前世今生
背景Top-k查询,也就是给定一个目标ooo,在一个数据集中找出和目标o最相似的k个目标。这一查询在各类应用中被广泛使用,例如聚类算法等。以下几个是实现方案:暴力算法:实现Top-k查询,也就是计算ooo和数据集中每一个目标的相似度,然后排序找出前k个。我们假设一个房子特征目标o={a0=a_0=a0=地理,a1=a_1=a1=房子尺寸,a2=a_2=a2=楼层,…,am=a_m=am=新旧}(这经常被用在机器学习中),典型地采用欧式距离计算两个目标o1={a0,a1,...am},o2={b0
2020-06-13 22:30:50
1904
原创 matplotlib画eps图,纵坐标标题显示不全的解决方案
现象使用matplotlib画图并保存为eps格式后,使用latex显示该图片后发现图片纵坐标的标题消失了,保存为pdf,png等其它格式没有这个问题版本:matplotlib:3.3.4python:3.6解决方法设置了字体为Arial,使用其它字体后,问题解决。猜测是由于python版本或者matplotlib版本的升级导致了bug...
2021-05-10 09:27:31
1912
1
原创 git reset的用法
git reset概括git 的三种状态git resetgit reset --softgit reset --mixedgit reset --hard概括这篇博客分析了git reset的用法,我将从以下几个命令介绍它:git reset --softgit reset --mixedgit reset --hardgit 的三种状态一个git项目中的文件会存在三种状态:处于工作区:也就是我们当前正在写的,但是未使用add添加到暂存区的文件处于暂存区:使用add添加后的工作区文
2020-12-10 09:50:32
481
原创 简单介绍Linux文件的软链接和硬链接
Linux文件的软链接和硬链接本文用通俗化的语言介绍软硬链接的定义并举例说明在实际使用中它们的作用。预备知识首先我们要知道,在linux文件系统中,小部分区域用于保存文件的 inode (i 节点)信息;剩余的大部分用于保存 block 信息。inode 用来记录文件的权限、文件的所有者和属组、文件的数据保存所在的 block 编号、文件的大小、等各类状态。每个文件需要占用一个inode。block 用于实际的数据存储,如果一个 block 放不下数据,则可以占用多个 block。
2020-07-23 21:16:51
184
原创 一文了解java函数参数是引用传递还是值传递
一文了解java是引用传递还是值传递首先下定论:值传递,更确切的说,函数参数是值传递,但这个值是一个引用的地址值(除了基本类型)。什么是值传递和引用传递值传递:传递的值的拷贝引用传递传递的是引用的地址值java 类型首先我们知道,JAVA有两种类型:一种是基本类型也就是int,double这种类型。例如:int a=5; //可以简单的理解为a就是5另一种是引用类型,也就是我们平时生成的类,或者是基本类型的包装类Integer,Doublepublic class Dog(){ Do
2020-07-19 18:27:25
360
原创 ROI Pooling和RoIAlign的一些理解
Preliminary knowledgeregions of interest(ROI)(亦称region proposals):感兴趣的区域(给定一张输入image找出objects可能存在的所有位置),也就是下图中的黄色框框,每一个框框就是一个ROI[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UlUG0526-1575300114825)(en-res...
2019-12-02 23:22:46
756
原创 C++中强制类型转换及static_cast, dynamic_cast
前言在C++中,当函数参数为基类指针或引用时,传入派生类时,会自动向上转型。但是在函数中调用派生类方法会出错,因为此时参数为基类指针或引用。因此通过类型转换可以实现在函数中调用派生类方法。对比C风格类型转换:double(5.0)static_cast<转换后类型>(转换对象)dynamic_cast<转换后类型>(转换对象)区别:static_cast,...
2019-11-26 23:04:51
273
原创 Python中argparse的使用教程
应用场景在命令行运行程序时,我们经常看到类似于这样的输入:python3 mycode.pypython3 mycode.py --helppython3 mycode.py wlg #wlg为任意字符串python3 mycode.py 3 #其中--help,wlg,3都为参数如果需要我们自己编写代码来解析参数,将是一个较为繁琐的过程,幸好Python提供了一套较为完整...
2019-11-06 15:06:52
354
原创 Dell 已有windows10系统安装ubuntu18.4系统
Dell 已有windows10系统安装ubuntu18.4系统目前,笔记本电脑启动引导方式逐渐从bios引导过渡到UEFI引导,这使得老的双系统安装方式不适用于目前的电脑,又或者即使侥幸安装成功,下一次也不定安装成功。在先前,笔者电脑依据网上的教程成功安装过双系统,然而,在window自动更新后,grub引导突然消失,这使得开机之后直接进入了window10系统,无法进入ubuntu系统,在...
2019-07-18 13:56:52
1029
原创 贪心算法
贪心算法贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心选择:一系列局部最优的选择但局部最优解并不一定是整体最优解,为此在应用贪心算法时,必须证明整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。也就是每次选取局部最优解,最后得到的一定是整体最优解。举个栗子举个局部最优解不是是整体最优...
2019-05-19 10:50:21
233
原创 C++随机函数随机出相同结果序列
C++随机函数随机出相同结果序列问题产生问题原因解决方法备注问题产生// An highlighted block mt19937 rng(unsigned(time(0))); uniform_real_distribution<double> ur_length(info.Min_longitude, info.Max_longitude); uniform_real_d...
2019-04-03 17:49:35
954
原创 关于编辑器,编译器,汇编器,以及跨平台的思考
关于编辑器,编译器,汇编器,以及跨平台的思考编辑器的作用编译器和汇编器的作用编辑器的作用编辑器用来接收键盘输入的字符,比如记事本等,但是这类编辑器没有语法高亮,补全等功能,对使用者不够友好,因此书写代码使用功能更加强大的编辑器会提升效率。编译器和汇编器的作用机器识别的是0101011之类的二进制语言(机器语言),但是一般人们用C语言,或更高级语言都是以英文输入,因此输入的代码需要经过一定转...
2019-03-17 20:29:20
1263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人