机器学习
文章平均质量分 79
OscarMind
这个作者很懒,什么都没留下…
展开
-
Ubuntu 16.04 安装 NVIDIA GeForce GTX 1060 显卡驱动,以及 CUDA 10.1
https://blog.csdn.net/pertain99/article/details/102848725原创 2020-08-18 20:12:11 · 699 阅读 · 0 评论 -
Non-local Neural及Self-attention
@Non-local Neural及Self-attentionNon-local Neural及Self-attention1 创新点无论cv还是nlp,都需要捕获长范围依赖。在时间序列任务中RNN操作是一种主要的捕获长范围依赖手段,而在CNN任务中通过堆叠多个卷积模块来形成大的感受野。目前的卷积核循环算子都是在空间和时间上的局部操作,长范围依赖捕获是通过重复堆叠,并且反向传播得到,存在3个不足:(1)捕获长范围依赖的效率太低;(2)由于网络很深,需要小心的设计模块和梯度(3)当需要在比较远位原创 2020-05-29 19:43:05 · 722 阅读 · 0 评论 -
Eigen3升级方法
SLAM十四讲第二版CH4中的代码sophus版本已经升级,需要配套eigen3.30以上包版本。若是通过sudo apt-get install libeigen3-dev方法安装的eigen是3.2.9版本会报错。升级eigen3版本后,即可完成sophus安装。Eigen3升级方法如下:下载地址:http://eigen.tuxfamily.org/index.php?title=Mai...原创 2020-04-09 22:16:35 · 3606 阅读 · 1 评论 -
ppa:jonathonf/python-3.6 报错解决办法
ubuntu16.04などでpython3.6を入れるときにppa:jonathonf/python-3.6のppaを使っていたんですが、非公開になってしまってちょっと困ったのでメモ変更前sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt updatesudo apt install python3.6apt updat...原创 2020-03-08 11:37:32 · 8111 阅读 · 3 评论 -
Pytorch 加载自己的训练模型
Pytorch保存我们训练好的模型,然后加载用于测试第一种方法(1)保存torch.save(model.state_dict(), PATH)# exampletorch.save(resnet50.state_dict(),'ckp/model.pth')(2)恢复model = ModelClass(*args, **kwargs)model.load_state_dic...原创 2020-01-07 12:29:05 · 5214 阅读 · 2 评论 -
pytorch 统计模型参数个数
用resnet50 来举例子print("resnet50 have {} paramerters in total".format(sum(x.numel() for x in resnet50.parameters())))其中numel表示含有多少element,通过此操作可以统计模型的参数量有多少另外,两个是一样的,方便debug看其中到底有什么东西num_params = 0...原创 2019-12-26 15:52:12 · 2710 阅读 · 0 评论 -
阿拉伯学生提出博士论文证明地球是平的-已通过批准
地球是“平”的这个想法,事实上是相当新的理论。其实在所有人想到我们住在一个平面上之前,人类已知道地球是圆的。 即使有无数张地球的照片、从太空录下了数不清的影片,仍有人主张地球其实是平的。其中之一就是博士班的学生,他让阿拉伯科学界震惊了,因为他展示他的论文,宣称地球是平的、固定的,它是宇宙的中心,而且只有13500岁。是的,你没看错。他不只表示我们住在平的地球上,他还反对牛顿和爱因斯坦的理论、哥白尼...原创 2018-06-24 15:32:21 · 995 阅读 · 1 评论 -
一文看懂隐马尔科夫模型
万事不如先举个栗子:假设有4个盒子,每个盒子里都有红白两种颜色的球,盒子里的红白球数如下:按照下面的方法抽取球,缠身给一个球的颜色的观测序列:①从4个盒子里以等概率随机选取1个盒子,从这个盒子里面随机抽出1个球,记录其颜色后,放回;②从当前盒子随机转移到下一个盒子,规则是:如果当前盒子是盒子1,那么下一个盒子一定是2,如果当前盒子是2或3那么,分别以概率0.4和0.6转移到左边或右边的盒子,如果是...原创 2018-07-11 22:45:24 · 2198 阅读 · 1 评论 -
同类型同频率相位观测值的线性组合----差分观测值
1.观测值的线性组合: 同类型同频率观测值的线性组合,一号卫星L1和二号卫星L1 同类型不同频率观测值的线性组合,一号卫星L1和L2 不同类型观测值的线性组合,测距码和载波进行组合2.同类型同频率相位观测值的线性组合----差分观测值 可以消除相同的误差按照差分方式可以分为:站间差分(between receiveers)、星间差分(between satell...原创 2018-07-15 17:17:12 · 5474 阅读 · 1 评论 -
载波相位测量原理
1.重建载波定义:载波调制了电文之后变成了非连续的波,将非连续的载波信号恢复成连续的载波信号。码相关法:方法----将所接收到的调制信号(卫星信号)与接收机产生的复制码相乘。技术要点----卫星信号(弱)与接收机信号(强)相乘。特点----限制,需要了解码的结构;有点,可以获得导航电文,可以获得全波长的载波,信号质量好(信噪比高)。 平方法:方法----将所接受...原创 2018-07-14 15:08:18 · 31169 阅读 · 0 评论 -
ubuntu 常用命令
1. 删除由apt-get方法安装的软件 abc :apt-get remove --purge abc 2. 查看硬盘空间使用情况: baobab3. 查看IP: ifconfig -a原创 2019-11-18 17:11:35 · 178 阅读 · 0 评论 -
3D+2D位姿估计
一、读取两帧图像,并获得特征点以及匹配后的特征点 Mat img_1 = imread ( argv[1], CV_LOAD_IMAGE_COLOR ); Mat img_2 = imread ( argv[2], CV_LOAD_IMAGE_COLOR ); vector<KeyPoint> keypoints_1, keypoints_2; v...原创 2019-11-07 17:12:52 · 1239 阅读 · 0 评论 -
三角测量并验证三角化点与特征点的重投影关系
三角测量并验证三角化点与特征点的重投影关系首先根据求出R, t;然后根据求出 s1, s2 两帧图像里的Z坐标值,代表深度一. 输入参数为 keypoints_1, keypoints_2, matches, R, t 输出参数为points->point(x, y, z) 代码为:triangulation( keypoints_1,...原创 2019-11-07 15:21:08 · 1723 阅读 · 0 评论 -
验证对极约束
验证对极约束1. 将图1中匹配好的特征点像素坐标转化为归一化坐标:输入:keypoints_1[ m.queryIdx ].pt 为像素坐标, K为相机内参矩阵;得到:y1= (x/z, y/z, 1) 相机归一化坐标。代码如下:Point2d pt1 = pixel2cam ( keypoints_1[ m.queryIdx ].pt, K );Mat y1 = ...原创 2019-11-07 11:35:53 · 409 阅读 · 0 评论 -
vector方法总结
vector方法总结vector初始化vector<int>a(10) //只定义长度vector<int>a(10,1)//长度为10,初始值为1vector<int>a(b); //用b向量来创建a向量,整体复制性赋值vector<int>a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(...原创 2019-11-05 23:14:20 · 299 阅读 · 0 评论 -
数据预处理
1. 中心化数据预处理中一个最常见的处理办法就是每个特征维度减去相应的均值实现中心化,这样可以使得数据变成0均值,特别对于一些图像数据,为了方便我们将所有的数据都减去一个相同的值。2.标准化使得数据都变成0均值之后,还需要使用标准化的做法让数据不同的特征维度都有着相同的规模。有两种常用的方法:一种是除以标准差,这样可以使得新数据的分布接近标准高斯分布:还有一种常用的做法就是让每个特征维...原创 2019-04-08 22:50:55 · 661 阅读 · 0 评论 -
pytorch的data_loader
train_loader = DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=num_workers, ...原创 2019-04-08 20:46:39 · 1886 阅读 · 0 评论 -
GPU使用率查看即内存释放
查看GPU使用率: nvidia-smi释放内存: sudo kill -9 ****[PID]原创 2019-04-08 09:50:44 · 3665 阅读 · 0 评论 -
pandas库pd.read_pickle操作读取pickle数据与.to_pickle()永久储存数据
"""【python】pandas库pd.read_pickle操作读取pickle数据与.to_pickle()永久储存数据"""# 1.pickle.dump(obj, file, [,protocol])import pickle# 写入一个文件,用二进制的形式f = open('data_one.pkl', 'wb')# 等待写入的数据datas = {'name':...原创 2018-10-26 15:26:48 · 14502 阅读 · 0 评论 -
ubuntu 16.04 python+tensorflow安装路径查看
由于tensorflow版本不同,可能一些函数的调用也有变换,这时候可能需要查看tensorflow版本,可以在终端输入查询命令如下:pythonimport tensorflow as tftf.__version__查询tensorflow安装路径为:tf.__path__python安装路径查看import sysprint sys.path...原创 2018-10-21 21:57:03 · 2545 阅读 · 0 评论 -
第二课:动态规划
1.什么是动态规划?之前提到解决序列决策问题有两种手段----学习与规划 当前有一个精确的环境模型时,可以用动态规划去解 编程算法中也有动态规划的概念,与其相似 总的来说,就是将问题分解成子问题,通过解决子问题,来解决原问题动态:针对序列问题规划:优化,得到策略贝尔曼方程是关键2.动态规划可以解决什么问题?动态规划是一种解决问题的方法,什么样的问题能使用动态规划去解?...原创 2018-07-25 00:01:08 · 615 阅读 · 0 评论 -
TensorFlow----实现 RNN 的基本单元: RNNCell
RNNCell是TensorFlow中发RNN基本单元。本身是一个抽象类,拥有两个子类,一个是BasicRNNCell,另一个是BasicLSTMCell。 (注:RNNCell:是抽象类不能进行实例化,可以使用它的子类 BasicRNNCell 或BasicLSTMCell 进行实例化,得到 cell )RNNCell的三个要点类方法call (实现单步循环) 类属性 stat...原创 2018-07-19 20:35:16 · 2017 阅读 · 0 评论 -
BasicRNNCell 和 BasicLSTMCell 的 output
在BasicRNNCell 和 BasicLSTMCell 的类中调用了call方法会得到output。由上图可知h对应了BasicRNNCell的state_size。那么y是不是对应了BasicRNNCell的output_size呢?答案是否定的!通过“ return output, output”,可以看出在 BasicRNNCell 中, output真实和隐状态...原创 2018-07-19 21:18:01 · 963 阅读 · 1 评论 -
使用 tf.nn.dynamic_rnn 展开时间维度
对于单个的 RNNCell , 使用色的 call 函数进行运算时 ,只是在序列时间上前进了一步 。如使用 x1、 ho 得到此h1, 通过 x2 、 h1 得到 h2 等 。 tf.nn.dynamic_rnn的作用:如果序列长度为n,要调用n次call函数,比较麻烦。对此,TensorFlow提供了一个tf.nn.dynamic_mn函数,使用该函数相当于调用了n次call函数。通...原创 2018-07-19 21:49:00 · 1508 阅读 · 1 评论 -
用TFTS读取时间序列数据
在训练模型之前,需要将事件序列数据读入成为Tensor的形式。TFTS库中提供了两个方便的读取器:NumpyReader----用于从numpy数组中读入数据;CSVReader----后者用于从CSV文件中读入数据。x = np.array(range(1000))noise = np.random.uniform(-0.2, 0.2, 1000)y = np.sin(np...原创 2018-07-19 23:57:50 · 981 阅读 · 0 评论 -
一文看懂深度学习优化方法——梯度下降
从很大程度上来说,深度学习实际上是在解决大量烦人的优化问题。神经网络仅仅是一个非常复杂的函数,包含数百万个参数,这些参数代表的是一个问题的数学解答。以图像分类为例,AlexNet 就是一个数学函数,它以代表图像 RGB 值的数组为输入,生成一组分类得分的输出。实质上,通过训练神经网络,我们是在最小化一个损失函数。这个损失函数的值衡量了我们网络的性能在给定数据集上离完美还差多少。损失函数简单起见,假...原创 2018-07-15 22:37:41 · 7243 阅读 · 3 评论 -
一文看懂机器学习过拟合
什么是过拟合?首先我们来解释一下过拟合的概念?过拟合就是训练出来的模型在训练集上表现很好,但是在测试集上表现较差的一种现象!下图给出例子:我们将上图第三个模型解释为出现了过拟合现象,过度的拟合了训练数据,而没有考虑到泛化能力。在训练集上的准确率和在开发集上的准确率画在一个图上如下:从图中我们能够看出,模型在训练集上表现很好,但是在交叉验证集上表现先好后差。这也正是过拟合的特征!模型出现过拟合有三种...原创 2018-07-14 13:54:53 · 640 阅读 · 0 评论 -
第一课:一文读懂马尔科夫过程
1.马尔科夫决策过程(MDPs)简介马尔科夫决策过程是对强化学习(RL)问题的数学描述。几乎所有的RL问题都能通过MDPs来描述:最优控制问题可以用MDPs来描述; 部分观测环境可以转化成POMDPs; 赌博机问题是只有一个状态的MDPs;注:虽然大部分DL问题都能转化为MDPs,但是以下所描述的MDPs是全观测的情况。强化学习中的表述符号:2.马尔科夫性只要知...原创 2018-07-14 00:57:29 · 35745 阅读 · 8 评论 -
条件随机场的参数化形式
设P(Y|X)为线性链条件随机场,则在随机变量X取值为x,的条件下,随机变量Y取值为y的条件概率具有如下形式:其中,上式为线性条件随机场模型的基本形式,表示给定输入序列x,对应序列y预测的条件概率。下面通过一个简单的例子进一步了解;解,由上式,线性条件随机场模型为...原创 2018-07-11 15:56:35 · 1340 阅读 · 0 评论 -
python命名中下划线的含义
python不仅用奇特的空格表示代码块,还用变量和函数命名中的下划线来表示一些特殊含义。①_单下划线开头:弱 内部使用表示,如“from M import *”,将不导入所有下划线开头的对象,包括包、模块、成员②单下划线结尾_:只是为了避免与python关键字的命名冲突。③__双下划线开头:模块内的成员,表示私有成员,外部无法直接调用。④__双下划线开头双下划线结尾__:值那些py...原创 2018-08-13 21:28:16 · 582 阅读 · 0 评论 -
argparse
argparseargparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。argparse使用主要有三个步骤:创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() 解析...原创 2018-08-16 15:36:20 · 270 阅读 · 0 评论 -
enumerate() 函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般在for循环中使用。原创 2018-08-16 16:24:38 · 223 阅读 · 0 评论 -
闭包函数
闭包的定义:闭包是函数式变成的重要的语法结构,在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。问题描述:一般情况下,当我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量就会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内...原创 2018-08-20 09:48:35 · 637 阅读 · 0 评论 -
Parallel()
Joblib提供了一个简单的帮助类来编写并行化的循环。其核心思想是把代码写成生成器表达式的样子,然会再将它转换为并行计算:>>> from math import sqrt>>> [sqrt(i ** 2) for i in range(10)][0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]使用...原创 2018-09-04 09:28:57 · 6615 阅读 · 2 评论 -
TensorFlow数据读取机制
一、TensorFlow读取机制图解首先需要知道,什么是数据读取?以图像数据为例,读取数据的过程可以用以下图来表示:假设我们的硬盘中有一个图片数据集合0001.jpg,0002.jpg,0003.jpg……,我们只需要把他们读取到内存中,然后提供给GPU或者是CPU进行计算就可以了。事实上,我们必须先吧数据读取之后才能计算,这就大大降低了运算的效率。 如何解决这个问题?方法就是将读...原创 2018-09-04 16:26:44 · 499 阅读 · 1 评论 -
scope 命名方法
scope能让你命名变量的时候轻松很多,一下讨论TensorFlow中的两种定义scope的方式。tf.name_scope()在TensorFlow当中有两种途径生成变量variable,一种是tf.get_variable(),另一种是tf.variable()。如果在tf.name_scope()的框架下使用这两种方式,结果会如下所示:可以看出使用 tf.Variable()...原创 2018-09-18 15:27:08 · 715 阅读 · 0 评论 -
slim.arg_scope()
slim.arg_scope()slim.arg_scope可以定义一些函数的默认参数值,在scope内,我们重复用到这些函数时可以不用把所有参数都写一遍,注意它没有tf.variable_scope()划分图结构的功能, 1 2 3 4 5 6 7 8 9 10 11 12 ...原创 2018-09-18 19:41:29 · 1200 阅读 · 0 评论 -
直观解读KL散度的数学概念
机器学习是当前最重要的技术发展方向之一。基本概念分布:分布可能指代不同的东西,比如数据分布或概率分布。我们这里所涉及的是概率分布,假设你在一张纸上画了两个轴(X,Y),我们可以将一个分布想成是落在这两根轴之间的一条线。其中,X表示你有兴趣获取概率的不同值。Y表示观察X轴上的值所得到的概率。即y=p(x)。下图即使某分布的可视化。这是一个连续分布。比如,我们可以将X轴看成是人的身...原创 2018-07-18 15:59:59 · 4214 阅读 · 0 评论