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

原创 C++: 多态与虚函数
多态和虚函数的基本概念虚函数在类的定义中,前面有 virtual 关键字的成员函数就是虚函数。 virtual 关键字只用在类定义里的函数声明中, 写函数体时不用。构造函数与静态成员函数不能是多态。多态的表现形式多态的实现主要通过两种形式:指针多态和引用多态。指针多态派生类的指针可以赋给基类指针。通过基类指针调用基类和派生类中的同名虚函数时::若该指针指向一个基类的对象,那么被调...
2019-06-03 21:41:03
630
原创 论文阅读 LIMO: Lidar-Monocular Visual Odometry
简单来说,作者把lidar的深度信息引入传统的视觉导航系统中,从而获得了尺度和定位的精度提升和鲁棒性。一些有趣的views:双目的缺点在于其严重依赖于外参的标定精度图像里的特征点往往位于边界,如直接用特征点附近的点云邻居来进行平面拟合获得深度信息,往往会出错。因而先进行histogram下的分隔后再进行平面拟合。作者把车周围的点云分为3类:近点:对平移估计重要,但很难测量,因为光流很大中点:对旋转和平移重要,随机选择部分来避免局部最优值远点:对旋转重要,并便于追踪,但不能恢
2020-09-09 22:19:51
822
原创 四、深度学习常用软硬件介绍--EECS486/CS231n
HardwareFP32 can do 2 floating points operations (multiply and add) per clock cycle.if we use tensor core to calculate the computational capacity: (72 SM)x(8 tensor core per SM)x (128 FLOP/cycle) * (1.77Gcycle/sec)=130 TFLOP/secAnd all output elements
2020-08-23 01:59:04
448
原创 三、卷积神经网络结构及其发展历程--深度学习EECS498/CS231n
AlexNetOutput size:通道数和滤波器数量保持一致,均为64H/W = (H - K + 2P)/S + 1 = (227-11+4)/4+1=56Memory(KB):Number of output elements: C * H* W=64*56 *56=200704; Bytes per element=4 (for 32-bit floating point). KB=200704 * 4/1024 = 784Parameters(k):Weight shape =
2020-08-23 01:56:35
431
1
原创 二、神经网络基本结构-深度学习EECS498/CS231n
why RELU works?Vector DerivationBut Jacobian is sparse: off-diagonal entries are all zero! Never explicitly form Jacobian.结果我们发现,dy/dx_1,1 = [3,2,1,-1]其恰好是w的第一行,故而不需要显性地进行求解。dL/dxi,j=(dy/dxij)⋅(dL/dy)=(wi)⋅(dL/dyi,:)\begin{array}{l}\mathrm{dL} / \m
2020-08-23 01:52:46
659
原创 一、基础知识之数学基础与线性分类器--深度学习EECS498及CS231n
最近邻算法复杂度Train: O(1)对于最近邻算法,训练阶段只是简单地记忆下所有的训练数据,对于浅拷贝而言只需要记录其指向数据集的指针Test: O(N)此处N为训练集的大小,即每做一次判断需要把测试样例和训练集的每一个样本进行Distance计算,对于test而言,O(N)的复杂度是不可接受的线性分类器的三个视角从代数角度来看,学习了一个线性函数的权重,即一个权重矩阵从视觉角度来看,对于每一个类别,找到一个具有代表性的模板从几何角度来看,寻找的是一个超平面正则化
2020-08-23 01:46:10
504
原创 VS2019无法打开stdexcpt.h和typeinfo.h
在学习邓公的数据结果时,使用示例源码编译器报错:无法找到<typeinfo.h>。经搜索为标准库版本不同导致的接口命名不一致导致的。
2020-04-23 10:00:59
1687
原创 C++11保留小数点的的四舍五入方案
C++11保留小数点的的四舍五入方案通常有两种常用的方法:通过Setprecision()实现#include <iomanip>#include <iostream>std::cout << std::fixed << setprecision(5) << 1.234567;上面程序示例即可达到保留5位小数并四舍五入,但如...
2019-11-03 22:42:28
1162
原创 Flip Games 题解报告:广度优先搜索
Flip Games 题解报告问题描述:具体问题描述就不在此展开,有兴趣的朋友可以参看下面的链接:http://cxsjsxmooc.openjudge.cn/test2/G/ 。简单来说就是给定一个棋盘的状态量(黑白相间),每次点击一个棋子,会把其及周围的棋子改变颜色,问最少需要点击几次棋子才能达到纯黑或者纯白的状态。问题分析由于题目中问的是最优解,我们很容易想到使用广度优先搜索的方法...
2019-11-02 18:10:09
260
原创 广度优先搜索-Part1
引入例题:抓住那头牛农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?场景分析假设农夫起始...
2019-11-02 17:33:55
646
原创 深度优先搜索(Part 1)
深度优先搜索将问题的各状态之间的转移关系描述为一个图,则深度优先搜索遍历整个图的框架为:Dfs(v){ if(v访问过) return; 将v标记为访问过; 对和v相邻的每个点u:Dfs(u);}引入例题:城堡问题如图是一个城堡的地形图。请编写一个程序,计算城堡一共有多少房间,最大的房间有多大。解题思路:对每一个 方块,深度优先搜索,从...
2019-10-15 00:28:00
360
原创 算法学习:动态规划2
最长上升子序列解题思路:找子问题:“求以aka_kak(k=1, 2, 3…N)为终点的最长上升子序列的长度”一个上升子序列中最右边的那个数,称为该子序列的“终点”。虽然这个子问题和原问题形式上并不完全一样,但是只要这N个子问题都解决了,那么这N个子问题的解中,最大的那个就是整个问题的解。确定状态子问题只和一个变量-- 数字的位置相关。因此序列中数的位置k 就是“状态”...
2019-10-07 05:59:53
149
原创 算法学习: 动态规划1
动态规划引入例题: 数字三角形问题背景:在数字三角形钟寻找一条从顶部到底部的路径,使得路径上经过的数字之和最大。常用作法: 递归型动归#include<iostream>#include<algorithm>#define MAX 101using namespace std;int D[MAX][MAX];int maxSum[MAX][MAX];i...
2019-09-24 16:43:36
321
原创 SLAM十四讲: g2o_curve_fitting报错解决方法: CAMKE编译及G2O
这一讲介绍了用G2O库,具体的安装操作请参看高翔的SLAM14讲,本文只针对书中未提及的一些bug进行一些总结。g2o CMAKE编译失败在使用CMAKE编译时会出现一下报错:By not providing "FindG2O.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configur...
2019-08-23 23:16:27
733
原创 Sophus库在使用时找不到FindSophus.cmake的问题
在使用Sophus进行李代数操作,build过程中提示如下问题: By not providing "FindSophus.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Sophus", but CMake did no...
2019-08-16 18:07:39
2140
原创 c++:函数调用作为实参
在coursera结课习题遇到下面程序,需要将函数名作为实参传入。相应的函数声明时,需要注意函数的返回值,函数的形参表。#include <iostream>using namespace std;int sum(int a[], int n, int (*sqr)(int)) { int sum = 0; for(int i = 0; i < n; i++...
2019-07-16 00:40:49
1078
原创 C++:继承与派生初探
继承和派生定义继承:在定义一个新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点), 那么就可以把A作为一个基类,而把B作为基类的一个派生类(也称子类)。派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量 和成员函数。派生类一经定义后,可以独立使用,不依赖于基类。派生类拥有基类的全部成员函数和成员变 量,不论是private、protected、p...
2019-07-16 00:03:47
253
原创 C++:运算符的重载
运算符重载运算符重载对已有的运算符赋予多重的含义使同一运算符作用于不同类型的数据时有不同类型的行为目的:扩展cpp中提供的运算符的适用范围, 以用于类所表示的抽象数据类型运算符重载的实质是函数重载,参数个数为运算符目数返回值类型 operator 运算符(形参表){ …… }在程序编译时:把含运算符的表达式 -> 对运算符函数的调用把运算符的操作数 -&...
2019-07-15 04:44:20
642
原创 标准模板库(STL)四:STL算法之变值/变序/排序/有序区间/合并
变序算法变序算法改变容器中元素的顺序但是不改变元素的值变序算法不适用于关联容器算法复杂度大部分都是 O(n)O(n)O(n)的算法功能reverse颠倒区间的前后次序reverse_copy把一个区间颠倒后的结果拷贝到另一个区间, 源区间不变rotate将区间进行循环左移rotate_copy将区间以首尾相接的形式进行旋转后的结果 拷贝到...
2019-07-07 06:40:17
274
翻译 Gaussian Process(高斯过程) GPSS暑校笔记六(英文版)——随机微分方程
Basic IdeasWhy use S§DE solvers for GPs?The O(n3)O(n^3)O(n3) computational complexity is a challenge.What do we get:O(n)O(n)O(n) state-space methods for SDEs/SPDEs.Sparse approximations develop...
2019-07-04 07:22:08
644
原创 标准模板库(STL)三:STL算法之不变序列算法
STL算法STL中的算法大致可以分为以下七类:不变序列算法变值算法删除算法变序算法排序算法有序区间算法数值算法大多重载的算法都是有两个版本的用 “==” 判断元素是否相等, 或用 “<” 来比较大小多出一个类型参数 Pred和函数形参 Pred op : 通过表达式 op(x,y)的返回值: ture/false 判断x是否 “等于” y,或者x是否 “小于” y...
2019-07-04 07:00:05
264
原创 标准模板库(STL)二:关联容器与容器适配器
标准模板库 STLpair模板template<class _T1, class _T2>struct pair{ typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair():first(), second(){}; //无参构造函数 p...
2019-07-04 06:56:42
170
转载 Gaussian Process(高斯过程) GPSS暑校笔记五(英文版)——无监督学习与高斯过程
p(y)=∫p(y∣f)p(f∣x)p(x)dfdxp(x∣y)=p(y∣x)p(x)p(y)\begin{array}{c}{p(y)=\int p(y | f) p(f | x) p(x) \mathrm{d} f \mathrm{d} x} \\ {p(x | y)=p(y | x) \frac{p(x)}{p(y)}}\end{array}p(y)=∫p(y∣f)p(f∣x)p(x)d...
2019-06-25 05:51:43
421
翻译 Gaussian Process(高斯过程) GPSS暑校笔记总计四(英文版)——多输出高斯过程
Multiple-Output Gaussian ProcessWorking SituationAs the picture shows, we want to learn from the three sensors (with complete signal information) to recover the fourth one.Dependencies between pro...
2019-06-25 02:12:03
955
原创 标准模板库(STL)一:基本概念
标准模板库 STL概述STL:standard template libraryc++里的重用面向对象:继承、多态、标准类库泛型程序设计:模板机制,STL泛型程序设计将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法。基本概念容器:容纳各种数据类型的...
2019-06-24 07:25:09
333
翻译 Gaussian Process(高斯过程) GPSS暑校笔记总计三(英文版)——核设计
What is a kernel?Theorem (Leove):kkk corresponds to the covariance of a GP.kkk is a symmetric positive semi-definite function.when kkk is a function of x−yx-yx−y , the kernel is called stationary,...
2019-06-19 18:52:33
559
翻译 Gaussian Process(高斯过程) GPSS暑校笔记总计Ⅱ(英文版)——高斯过程介绍二
Stochastic Processa stochastic process is a collection of random variable indexed by some variable x∈Xx \in \mathcal{X}x∈X.f={f(x):x∈X}f = \begin{Bmatrix} f(x):x \in \mathcal{X} \end{Bmatrix}f={f(x)...
2019-06-19 18:50:20
583
翻译 Gaussian Process(高斯过程) GPSS暑校笔记总计Ⅰ(英文版)——高斯过程介绍
What is Machine Learning?data+model⇒prediction \text{data} + \text{model} \rArr \text{prediction}data+model⇒predictiondata\text{data}data : observations, could be actively or passivelyacquired (me...
2019-06-19 18:47:30
1137
原创 C++:输入与输出
输入和输出与输入输出流操作相关的类istream是用于输入的流类,cin就是该类的对象。ostream是用于输出的流类,cout就是该类的对象。ifstream是用于从文件读取数据的类。ofstream是用于向文件写入数据的类。iostream是既能用于输入,又能用于输出的类。fstream是既能从文件读取数据,又能向文件写入数据的类。这些类的派生关系可以用下图来表达:ios...
2019-06-08 08:28:54
324
原创 C++ 泛型程序设计(三): 类模板之String类
string类string类是一个模板类,它的定义如下:typedef basic_string<char> string;使用string类要包含头文件 <string>string对象的初始化:string s1("Hello"); // 一个参数的构造函数string s2(8, ‘x’);// 两个参数的构造函数;8代表字符出现的次数string...
2019-06-08 08:27:47
841
原创 C++ 泛型程序设计(二): 类模板
类模板背景:定义一批相似的类定义类模板生成不同的类在调用类模板时,指定参数,由编译系统根据参数提供的数据类型自动产生相应的模板类类模板的定义template <class 类型参数1, class 类型参数2, ...>class 类模板名{ 成员函数和成员变量;};定义成员函数template <类型参数表>返回值类型 类模板名<类型参...
2019-06-05 05:55:25
320
原创 Python: 类,继承和多态
Class in Pythonpython中的class定义与cpp相类似,我们在此不多展开。直接上例子:class Animal(object): def __init__(self,name,age): self.name = name; self.__age = age; def greeting(self): print(...
2019-06-04 08:42:52
611
原创 C++ 泛型程序设计(一): 函数模板
泛型程序设计Generic Programming算法实现时不指定具体要操作的数据的类型,适用于多种数据结构; 通俗的来说,算法实现一遍,但适用于多种数据结构;大量编写模板,使用模板的程序设计:函数模板类模板优势:减少重复代码的编写;函数模板定义template<class 类型参数1, class 类型参数2, ...>返回值类型 模板...
2019-06-04 05:11:34
188
原创 C++文件的操作处理
文件操作顺序文件:一个有限字符构成的顺序字符流文件流类:用于文件操作ifstream:读取数据ofsteam:写入数据fstream:读写数据使用用/创建文件的基本流程打开文件通过制定文件名,建立文件和文件流对象的关联指明文件的使用方式读写文件利用读/写指针进行相应位置的操作关闭文件打开文件初始化对象时打开初始化后用open函数打开#incl...
2019-06-04 03:18:27
239
原创 C++ 值传递、指针传递与引用传递的理解
C++ 值传递 指针传递 引用传递简单定义及区别我们首先给出各种传递方式的简单定义,及各自的区别。值传递在值传递中,形参是实参的拷贝,改变形参的值并不影响外部实参的值。值传递是单向的,及参数的值只能传入,不能传出。指针传递本质上是值传递的方式,其所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理。当大于形参的指向操作时,相当于对实参本身进行操作。引用传递...
2019-06-03 04:22:32
456
原创 经典排序方法(一):冒泡/插入/归并/快排
1. 插入排序 Insertion Sort插入排序的工作原理是通过构建有序序列,对于未排序的序列,在已排序的序列中从后向前扫描,找到相应的位置并插入。###算法实现:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果已排序的元素大于新元素,将已排序元素移动到下一位置重复步骤三,直到找到已排序的元素小于或者等于新元素的位置将新元素插入该...
2019-06-02 22:51:57
271
原创 Python函数传入参数方式总结
1. 位置参数位置参数是最简单的传入参数的方式def func(a,b): print(a+b)func(1,3) #32. 默认参数默认参数是在调用函数的时候使用一些包含默认值的参数def power(x,n=2): s = 1 while(n>0) n -= 1 s *= n return s3. 可变参数...
2019-06-02 03:57:07
1076
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人