- 博客(129)
- 资源 (4)
- 收藏
- 关注
原创 【C++】C++避坑经验谈:资源管理类、智能指针
前面提到,C++中尽量不要使用指针。在代码量变得很高的情况下,程序猿很容易错误使用指针。为此,我们可以利用C++的类和智能指针来管理资源。这两者是相辅相成的。他们称为RAII技术。
2016-12-08 13:02:43 1932
原创 【C++】C++避坑经验谈:数组、vector
要给新人培训C++,奈何大家的时间是分散的,所以在这里开坑写文章了。这里只是个人经验,如果我也坑了的话请勿喷。一、指针很危险? 二、数组还是std::vector?三、什么时候用vector?
2016-12-06 15:41:27 4169
原创 【机器学习】GMM模型的直观推导(含中间步骤)
GMM模型即高斯混合模型,根据大数定律,在日常生活中,很多概率事件都服从高斯分布,因此GMM模型可以应用在这些概率事件的分析上。GMM模型由K个独立的高斯分布混合而成。我们可以这样直观求解GMM模型
2016-11-09 01:43:16 6463 1
原创 【机器学习】拟牛顿下降优化方法-BFGS
牛顿法是求解最优化,理论上最好最精确的方法,公式为:xk+1=xk−f′(xk)f″(xk)x_{k+1}=x_k-\frac{f'(x_k)}{f''(x_k)},原理是求解导数为0的情况。如果xkx_k是一个高维数据,且函数f(x)f(x)非常复杂,那么求解1/f″(x)1/f''(x)就是很麻烦的过程。拟牛顿法的思路是,在牛顿法的基础上,对1/f″(x)1/f''(x)做个近似估计就行了,不需
2016-11-06 01:55:01 514
原创 【机器学习】caffe:solver、train、val、deploy配置和线性回归神经网络
简单的线性回归是回归理论的入门基础。简单线性回归的公式为y=wTx+by=w^Tx+b,其中y、w、x均为多维向量数据。求解线性回归,就是在已知y和x的情况下,求解参数wTw^T和b。现在我用python版本的caffe,构建一个神经网络来拟合上述简单的线性回归。
2016-10-15 00:35:30 2972
原创 【机器学习】OSX 下配置pycaffe的问题和解决方法
首先这不是osx下caffe的安装教程,请移步官网: http://caffe.berkeleyvision.org/installation.html http://caffe.berkeleyvision.org/install_osx.html 遵照官网步骤之后仍然会有问题,问题和解决方法如下:
2016-10-08 10:47:52 2514
原创 【C++】C++11特性:初始化、hash容器和随机数生成器
声明类的成员变量的同时可以赋值,无须去构造函数赋值。容器可像栈数组一样初始化。STL中的hash容器有unordered_map, unordered_multimap, unordered_setC++11提供了一个真随机数算法,平时使用伪随机数就够了。C++11随机数生成需要一个随机数生成器和一个随机分布类。
2016-10-02 14:45:49 2052
原创 【C++】C++11特性:模板推导和循环区间
模板推导C++11在template编程的领域有很大的更新,功能愈发强大了,引入变参模板、外部模板等新功能,大大增强了模板编程的能力,其中新特性Tuple元组使用了变参模板特性。其中用的最多的,是模板推导。对于一些已经明确知道是什么类型的变量,C++11允许我们用auto关键字来自动推导类型,decltype来获取变量类型.
2016-10-02 13:07:15 786
原创 【C++】C++11特性:lambda和function
C++11是C++发展历史上的一个重大版本更新,引入了不少新的现代编程语言特性,可以直接实现的编程范式更多,语言本身有点向Java、Python等语言靠拢。然而C++由于应用的太广泛,过去很多使用C++旧版本的项目还运行在各行各业的电脑上,不会轻易升级;此外C++11毕竟年轻,能否经得住工业级别应用的考验还是个问题。毕竟现在技术的更新换代太多,C++领域总的趋势是向新版本靠拢。
2016-10-01 20:05:24 918
原创 【高性能】*nix系统常用的命令
我日常接触的*nix系统主要有Ubuntu Linux、Redhat Linux Server和Mac OSX。操作这些操作系统,命令行很多时候反而比GUI操作更简单,了解基本的命令,然后通过输入man 命令可以了解更多信息,有助于∗*nix系统的学习。前两者的命令非常相似,OSX的命令则有点不一样,区别在于OSX缺少一些底层操作的命令。我把常用的命令默写出来,想不起来的估计我也不怎么用到。
2016-10-01 15:28:09 2297
原创 【机器学习】关联规则与FP-Tree
FP-Tree算法 FP-Tree算法只需要遍历一次事务,然后可以建立FP-Tree树形数据结构来表征事务项目出现的关系。FP-Tree相比原始事务,将各个事务压缩到一个树,保存了项目之间的关系和出现频数,但是规模小得多。我可以直接根据FP-Tree来获取所有事务项目集合出现的次数。
2016-09-20 11:00:35 1974
原创 【机器学习】关联规则与Apriori算法
日常事务中,我们留意到事务中有些项目往往同时发生,于是开始挖掘这些项目之间的关联。要确定哪些事务项目有关联,我们需要给出合理的关联规则和算法。
2016-09-19 21:04:16 1136
转载 梯度下降优化算法综述
梯度下降优化算法综述 该文翻译自An overview of gradient descent optimization algorithms。
2016-09-09 09:52:26 917
原创 【图像处理】霍夫变换
图像处理分析过程中,检测特定的形状是重要的一步。霍夫变换(Hough)通过转换坐标系,将特定形状的检测映射到参数空间中,从而根据参数空间中的值来确定特定形状的相关信息。
2016-09-09 00:53:31 3036
原创 【机器学习】SVR支持向量机回归
回归和分类从某种意义上讲,本质上是一回事。SVM分类,就是找到一个平面,让两个分类集合的支持向量或者所有的数据(LSSVM)离分类平面最远;SVR回归,就是找到一个回归平面,让一个集合的所有数据到该平面的距离最近。 我们来推导一下SVR。根据支持向量机二分类博客所述,数据集合归一化后,某个元素到回归平面的距离为r=d(x)−g(x)r=d(x)-g(x)。另外,由于数据不可能都在回归平面上,
2016-09-02 11:28:25 47754 15
原创 【机器学习】C++版本libSVM的使用和非线性核函数分类代码
libSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发的一个简单易用、快速有效的SVM模式识别与回归的第三方库。该库无需额外的第三方库支持,只需要纯粹的C++编译运行环境,可以横跨Windows\Linux\Unix等平台。
2016-09-01 20:23:18 2591 3
原创 【机器学习】反向传播神经网络推导
简单的反向传播神经网络可以说就是将基本单元如感知器,组成层级结构,划分出输入层、隐含层、输出层;不同层之间通过连接来形成耦合,从而组成一个有功用的网状算法结构。
2016-08-23 02:17:19 1290
原创 【机器学习】windows GPU版keras神经网络库编译
theano、caffe和tensorflow是python上主流的机器学习库。keras是对theano/tensorflow的高级封装,由于tensorflow不支持windows,因此windows上keras只能使用theano作为底层。建议在windows上安装anaconda。
2016-07-23 17:00:27 2445
原创 【机器学习】windows版caffe深度学习库编译
caffe主要版本是基于Linux的,其Windows版本是由微软提交维护的。编译caffe的最低要求VS版本为2013,一开始让我很诧异,难道微软要用什么黑科技么?这让软件开发和推广很有难度啊。不多说了,先git clone下来再编译。
2016-07-23 09:17:35 1479
原创 VNC和CUDA安装冲突
我平时使用vnc来管理远程工作站和HPC。 最近我要安装CUDA7.5,安装之后,电脑黑屏了!于是我重启,还好电脑正常,但是CUDA就只安装了一半,既用不了也不能卸载,卸载会出错。于是我用控制面板的卸载程序功能强行删除了CUDA,然后升级NVIDIA驱动。 安装驱动之后,进入系统,系统分辨率只有640*480……,然后我换了旧版本的驱动安装,安装程序提示无法找到兼容的显卡。我去计算机管理-设备管
2016-07-22 20:56:34 1485
原创 【图像处理】平行线投影radon变换
从一个角度,用光源照射对象物体,屏幕上会形成对象物体的影子;如果物体是半透明的,那么影子便有灰度而不是纯黑的,这说明屏幕上的像可以反映物体内部对可见光的衰减作用。我们从落于[0~π\pi]的一系列连续角度照射物体,形成一系列的像,这些像包含物体结构特征信息,基本上可以通过这些像还原物体的形状特征,如果物体是半透明的,那么物体内部的结构也可以还原出来。物体原始形状变换生成这些投影像,称为radon变换
2016-06-29 13:15:38 15371 2
原创 【图像处理】小谈体绘制可视化
我过去三年的三维图像处理工作,涉及到了不少领域。为了提升处理速度,我大力学习C++和并行化;为了快速调试查看结果,我学习了计算机三维可视化,把面绘制和体绘制都研究了一遍。这里我把我所学的体绘制可视化知识,粗略说一下。
2016-06-28 16:22:52 2324 2
原创 【综合算法】A*算法
A*算法 A*算法;A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是许多其他问题的常用启发式算法。注意是最有效的直接搜索算法。之后涌现了很多预处理算法(ALT,CH,HL等等),在线查询效率是A*算法的数千甚至上万倍。
2016-06-22 15:58:15 3763
原创 【图像处理】一种求三维空间中两单位向量之间旋转矩阵的方法
矩阵相乘有多种含义,比如:从一种坐标系切换到另外的坐标系;空间中的运动。其中旋转矩阵相乘会改变物体的旋转角度,但不会改变物体形状和位置。单位向量可以看做一维物体,单位向量实际只有一个坐标轴,垂直于该坐标轴的其他两个坐标轴,无论怎么修改,对该单位向量并没有影响。现在我们已知两个单位向量,要求解一个向量va到另外一个向量vb的旋转矩阵,本质上可以理解为从前者对应的坐标系切换到后者对应的坐标系。
2016-06-02 00:31:00 7521
原创 【C++】灵活使用C/C++宏定义
灵活使用宏定义 #define宏定义在C语言中有广泛使用。对于C++语言,《Effective C++》第二章告诉我们,在C++中尽量用const、enum、inline替换#define,可以避免很多陷阱。尽管《Effective C++》第二章指出#define宏定义的诸多陷阱,这不代表作者不希望我们使用#define宏定义
2016-05-31 20:36:45 2414
原创 【高性能】Linux远程VNC桌面
Linux远程桌面 很多商业高性能集群服务器,安装使用Redhat Linux企业版。一般工作人员可以用ssh、rsh命令,远程直连Redhat Linux的控制台,跳过GUI模块来操控服务器。但是有时候,工作人员需要使用Linux系统下的GUI软件,这就不得不使用远程桌面VNC 。
2016-05-30 10:47:00 1678
原创 【综合算法】不考虑误差的TDOA定位
不考虑误差的TDOA定位TDOA是一种无线定位技术,是一种利用时间差进行定位的方法。 不同于TOA,TDOA(到达时间差)是通过检测信号到达两个基站的时间差,而不是到达的绝对时间来确定移动台的位置,降低了时间同步要求。
2016-05-27 21:00:22 18569 14
原创 生成python程序的exe文件
生成python程序的exe文件 在不安装python运行环境的情况下,用py2exe生成python程序的exe文件是最优选择。
2016-05-26 15:56:34 4825
原创 【数据挖掘】利用md5查找重复文件
【数据挖掘】利用md5查找重复文件 电脑经过长时间的使用,难免会存留许多重复文件。这些重复文件往往四散在各处,其文件名、修改时间等信息都有改动,这对我清理重复文件造成了困扰。尽管重复文件已经有了诸多修改,但是这些修改仅仅作用于文件头,真正的文件数据没有修改过,因此我可以通过比较磁盘上的文件的文件数据的md5摘要信息,来找到重复的文件。
2016-05-26 14:08:50 7513
原创 【图像处理】线性、位置不变退化图像的频域复原基础(维纳滤波,最小均方滤波,几何滤波)
【图像处理】线性、位置不变退化图像的复原基础(维纳滤波,最小均方滤波,几何滤波)
2016-05-19 17:15:19 4030
gdb7.1 for windows
2012-08-10
欧拉系统虚拟机安装问题
2023-05-05
基于C++怎么使用neo4j的http api?
2023-05-05
如何用VTK获取视锥八个顶点?
2023-03-18
slurm 任务被kill而没有报错信息,怎么办?
2022-10-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人