2015年6月24日

【CUDA并行编程之四】矩阵相乘

摘要: 前面介绍了基本的Cuda编程的相关知识,那么这一篇在此基础之上来看看GPU在处理数据计算上的高效能,我们拿矩阵相乘来作为例子。1.CPU上执行矩阵相乘以及性能。在CPU上进行矩阵相乘运算的代码:mat_mul.cc:[cpp]view plaincopy//a[i]*b[i]+c[i]=d[i]#i... 阅读全文

posted @ 2015-06-24 09:18 moffis 阅读(350) 评论(0) 推荐(0) 编辑

【CUDA并行编程之三】Cuda矢量求和运算

摘要: 本文将通过矢量求和运算来说明基本的Cuda并行编程的基本概念。所谓矢量求和运算,就是两个数组数据中对应的元素两两相加,并将结果保存在第三个数组中。如下图所示:1.基于CPU的矢量求和:代码非常简单:[cpp]view plaincopy#includeusingnamespacestd;consti... 阅读全文

posted @ 2015-06-24 09:15 moffis 阅读(1142) 评论(0) 推荐(0) 编辑

【Cuda并行编程之二】Cuda Memory Hierarchy_Cuda内存层次结构

摘要: 要想编写高效的程序,那么一定要对内存结构有比较深刻的认识,就像C/C++里面的堆内存,栈内存,全局存储区,静态存储区,常量区等。Cuda是并行计算框架,而GPU的内存有限,那么如果想编写高效的Cuda程序,首先要对其内存结构有一个简单的认识。首先我们先上一张图,然后通过解释一些名词和代码来进行解释。... 阅读全文

posted @ 2015-06-24 09:13 moffis 阅读(397) 评论(0) 推荐(0) 编辑

【Cuda并行编程之一】二分查找的探究以及Cuda的简单实现&&相关面试题介绍

摘要: 最近开始复习基础找工作,二分查找算是最基本而且十分重要的算法了,现在完整的解析一下,作为后面复习只用。内容分为几个部分:一、二分查找的基本过程折半查找技术,又称为二分查找。它的前提条件是线性表中的记录必须是关键码有序(通常从小到大排序),线性表必须采用顺序存储。折半查找的基本思想是:在有序表中,取中... 阅读全文

posted @ 2015-06-24 09:11 moffis 阅读(1021) 评论(0) 推荐(0) 编辑

2015年6月23日

CUDA编程接口:共享存储器实现矩阵相乘

摘要: 转自http://cuda.it168.com/a2011/1207/1285/000001285186.shtml正如在前面的文章提到的,共享存储器应当比全局存储器更快,详细内容将在后续文章中介绍。任何用访问共享存储器取代访问全局存储器的机会应当被发掘,如下面的矩阵相乘例子展示的那样。 下面的代码... 阅读全文

posted @ 2015-06-23 23:28 moffis 阅读(556) 评论(0) 推荐(0) 编辑

CUDA学习

摘要: 转自CUDA学习之一CUDA的核心有三个重要抽象概念:线程组层次结构、共享存储器、屏蔽同步(barrier synchronization),可轻松将其作为C语言的最小扩展级公开给程序员。GPU专用于解决可表示为数据并行计算的问题——在许多数据元素上并行执行的程序,具有极高的计算密度(数学运算与存储... 阅读全文

posted @ 2015-06-23 22:15 moffis 阅读(722) 评论(0) 推荐(0) 编辑

CUDA从入门到精通

摘要: 转自http://blog.csdn.net/kkk584520/article/details/9414191CUDA从入门到精通(一):环境搭建NVIDIA于2006年推出CUDA(Compute Unified Devices Architecture),可以利用其推出的GPU进行通用计算,将... 阅读全文

posted @ 2015-06-23 19:34 moffis 阅读(2141) 评论(0) 推荐(0) 编辑

CUDA编程指南阅读笔记

摘要: 转自http://blog.csdn.net/csgxy123/article/category/1500471随着多核CPU和众核GPU的到来,并行编程已经得到了业界越来越多的重视,CPU-GPU异构程序能够极大提高现有计算机系统的运算性能,对于科学计算等运算密集型程序有着非常重要的意义。这一系列... 阅读全文

posted @ 2015-06-23 17:56 moffis 阅读(1652) 评论(0) 推荐(0) 编辑

CUDA最佳实践

摘要: 转自:http://blog.csdn.net/csgxy123/article/details/9569201近期开始学习CUDA编程,需要阅读很多资料,为了便于整理复习,特将阅读笔记记录,以备后用。这一系列文章是根据NVIDIA公司官方文档《CUDA C Best Practices》的内容来进... 阅读全文

posted @ 2015-06-23 17:51 moffis 阅读(588) 评论(0) 推荐(0) 编辑

双边滤波CUDA优化——BilateralFilter CUDA

摘要: 转自:http://sangni007.blog.163.com/blog/static/174728148201481305957863/=======双边滤波概述=======双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函... 阅读全文

posted @ 2015-06-23 16:22 moffis 阅读(2054) 评论(0) 推荐(0) 编辑

2015年6月22日

Gabor的OpenCV代码

摘要: 转自http://blog.csdn.net/guoming0000/article/details/7839917最近弄人脸识别,用到Gabor卷积核,但网上的代码似乎没有和我心意的,于是参考了自己写了下!参考了Zhou Mian以及matlab的Gabor实现代码的代码。虽然OpenCV的imp... 阅读全文

posted @ 2015-06-22 23:17 moffis 阅读(303) 评论(0) 推荐(0) 编辑

CUDA系列学习(一)An Introduction to GPU and CUDA

摘要: 转自http://blog.csdn.net/abcjennifer/article/details/42436727本文从软硬件层面讲一下CUDA的结构,应用,逻辑和接口。分为以下章节:(一)、GPU与CPU(二)、CUDA硬件层面(三)、CUDA安装(四)、CUDA 结构与接口 4.1 Kern... 阅读全文

posted @ 2015-06-22 23:12 moffis 阅读(332) 评论(0) 推荐(0) 编辑

Windows平台CUDA开发之前的准备工作

摘要: 转自http://blog.csdn.net/carson2005/article/details/46416859CUDA是NVIDIA的GPU开发工具,目前在大规模并行计算领域有着广泛应用。windows平台上面的CUDA开发之前,最好去NVIDIA官网查看说明,然后下载相应的driver, T... 阅读全文

posted @ 2015-06-22 23:05 moffis 阅读(911) 评论(0) 推荐(0) 编辑

CUDA简介

摘要: 转自http://blog.csdn.net/carson2005/article/details/7694605随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像... 阅读全文

posted @ 2015-06-22 23:02 moffis 阅读(315) 评论(0) 推荐(0) 编辑

GPU基本介绍

摘要: 转自http://blog.csdn.net/carson2005/article/details/7636136基本概念:GPU:GraphicProcessingUnit;图形处理单元;GPGPU:GeneralPurposecomputationsonGPU;通用计算图形处理单元;CPU与GP... 阅读全文

posted @ 2015-06-22 22:56 moffis 阅读(616) 评论(0) 推荐(0) 编辑

学习OpenCV——Kalman滤波

摘要: 转自http://blog.csdn.net/yangtrees/article/details/8075911背景:卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观... 阅读全文

posted @ 2015-06-22 22:45 moffis 阅读(908) 评论(0) 推荐(0) 编辑

DoG 、Laplacian、图像金字塔详解

摘要: 转自:http://blog.csdn.net/yangtrees/article/details/8309594DoG(Difference of Gaussian)DoG (Difference of Gaussian)是灰度图像增强和角点检测的方法,其做法较简单,证明较复杂,具体讲解如下:Di... 阅读全文

posted @ 2015-06-22 22:27 moffis 阅读(627) 评论(0) 推荐(0) 编辑

2015年6月20日

HMM隐马尔科夫模型

摘要: 马尔科夫过程在概率论及统计学中,马尔可夫过程(英语:Markov process)是一个具备了马尔可夫性质的随机过程,因为俄国数学家安德雷·马尔可夫得名。马尔可夫过程是不具备记忆特质的。换言之,马尔可夫过程的条件概率仅仅与系统的当前状态相关,而与它的过去历史或未来状态,都是独立、不相关的。一个马尔科... 阅读全文

posted @ 2015-06-20 23:06 moffis 阅读(445) 评论(0) 推荐(0) 编辑

粒子滤波

摘要: 基本思想所谓粒子滤波就是指:通过寻找一组在状态空间中传播的随机样本来近似的表示概率密度函数,用样本均值代替积分运算,进而获得系统状态的最小方差估计的过程,这些样本被形象的称为“粒子”,故而叫粒子滤波。采用数学语言描述如下: 对于平稳的随机过程, 假定k - 1 时刻系统的后验概率密度为p ( xk-... 阅读全文

posted @ 2015-06-20 16:02 moffis 阅读(4267) 评论(0) 推荐(0) 编辑

2015年6月19日

蒙特卡洛思想之布丰投针实验

摘要: 投针实验可以用来计算圆周率,这里面的数学证明方法可能大家没有深究过。投针问题的由来1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的蒲丰投针问题。这一方法的步骤是: 1) 取一张白纸,在上面画上许多条间距为d的平行线。 2) 取一根长度为l(l<d) 的针,随机地向画有平... 阅读全文

posted @ 2015-06-19 21:09 moffis 阅读(5467) 评论(0) 推荐(0) 编辑

2015年6月17日

CNN 手写数字识别

摘要: 1. 知识点准备在了解 CNN 网络神经之前有两个概念要理解,第一是二维图像上卷积的概念,第二是 pooling 的概念。a. 卷积关于卷积的概念和细节可以参考这里,卷积运算有两个非常重要特性,以下面这个一维的卷积为例子:第一个特性是稀疏连接。可以看到, layer m 上的每一个节点都只与 lay... 阅读全文

posted @ 2015-06-17 17:22 moffis 阅读(252) 评论(0) 推荐(0) 编辑

Map/Reduce执行流程

摘要: MapReduce框架结构Map/Reduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的,Google已经将它完整的MapReduce论文公开发布了。其中对它的定义是,Map/Reduce是一个编程模型(programming model),是一个用于处理和生... 阅读全文

posted @ 2015-06-17 15:16 moffis 阅读(690) 评论(0) 推荐(0) 编辑

几种常用的优化方法

摘要: 1. 前言熟悉机器学习的童鞋都知道,优化方法是其中一个非常重要的话题,最常见的情形就是利用目标函数的导数通过多次迭代来求解无约束最优化问题。实现简单,coding 方便,是训练模型的必备利器之一。2. 几个数学概念1) 梯度(一阶导数)考虑一座在 (x1, x2) 点高度是 f(x1, x2) 的山... 阅读全文

posted @ 2015-06-17 15:10 moffis 阅读(905) 评论(0) 推荐(0) 编辑

机器学习中的相似性度量

摘要: 转自:http://www.cnblogs.com/heaad/archive/2011/3/8.html 在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲... 阅读全文

posted @ 2015-06-17 14:52 moffis 阅读(176) 评论(0) 推荐(0) 编辑

正则化、归一化含义解析

摘要: 原文地址http://sobuhu.com/ml/2012/12/29/normalization-regularization.html正则化(Regularization)、归一化(也有称为正规化/标准化,Normalization)是对数据尽心预处理的方式,他们的目的都是为了让数据更便于我们的... 阅读全文

posted @ 2015-06-17 14:49 moffis 阅读(470) 评论(0) 推荐(0) 编辑

拟牛顿法/Quasi-Newton,DFP算法/Davidon-Fletcher-Powell,及BFGS算法/Broyden-Fletcher-Goldfarb-Shanno

摘要: 转自:http://www.codelast.com/?p=2780在最优化领域,有几个你绝对不能忽略的关键词:拟牛顿、DFP、BFGS。名字很怪,但是非常著名。下面会依次地说明它们分别“是什么”,“有什么用” 以及 “怎么来的”。但是在进入正文之前,还是要先提到一个概念上的区别,否则将影响大家的理... 阅读全文

posted @ 2015-06-17 14:35 moffis 阅读(415) 评论(0) 推荐(0) 编辑

再谈 牛顿法/Newton's Method In Optimization

摘要: 转自:http://www.codelast.com/?p=8052牛顿法是最优化领域的经典算法,它在寻优的过程中,使用了目标函数的二阶导数信息,具体说来就是:用迭代点的梯度和二阶导数对目标函数进行二次逼近,把二次函数的极小点作为新的迭代点,不断重复此过程,直到找到最优点。『1』历史话说,牛顿法为什... 阅读全文

posted @ 2015-06-17 14:28 moffis 阅读(987) 评论(0) 推荐(0) 编辑

再谈 最速下降法/梯度法/Steepest Descent

摘要: 转自:http://www.codelast.com/?p=8006最速下降法(又称梯度法,或Steepest Descent),是无约束最优化领域中最简单的算法,单独就这种算法来看,属于早就“过时”了的一种算法。但是,它的理念是其他某些算法的组成部分,或者说是在其他某些算法中,也有最速下降法的“影... 阅读全文

posted @ 2015-06-17 14:26 moffis 阅读(1787) 评论(0) 推荐(0) 编辑

再谈 共轭方向法/Conjugate Direction Method In Optimization

摘要: 转自:http://www.codelast.com/?p=8095共轭方向法是介于最速下降法和牛顿法之间的一种存在——它的收敛速度(二阶收敛)比最速下降法(线性收敛)快,同时它的计算量又比牛顿法要小,因此它的存在是有意义的。需要注意,共轭方向法可以不使用目标函数的一阶导数信息(当然也可以使用)。所... 阅读全文

posted @ 2015-06-17 14:24 moffis 阅读(864) 评论(0) 推荐(0) 编辑

最速下降法/steepest descent,牛顿法/newton,共轭方向法/conjugate direction,共轭梯度法/conjugate gradient 及其他

摘要: 转自:http://www.codelast.com/?p=2573在最优化的领域中,这“法”那“法”无穷多,而且还“长得像”——名字相似的多,有时让人觉得很迷惑。在自变量为一维的情况下,也就是自变量可以视为一个标量,此时,一个实数就可以代表它了,这个时候,如果要改变自变量的值,则其要么减小,要么增... 阅读全文

posted @ 2015-06-17 14:18 moffis 阅读(484) 评论(0) 推荐(0) 编辑

conjugate gradient method (共轭梯度法)

摘要: 转自:http://blog.csdn.net/u010922186/article/details/43852707共轭梯度法(Conjugate Gradient)是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hess... 阅读全文

posted @ 2015-06-17 13:12 moffis 阅读(7312) 评论(0) 推荐(0) 编辑

牛顿法

摘要: 转自:http://blog.csdn.net/luoleicn/article/details/6527049平时经常看到牛顿法怎样怎样,一直不得要领,今天下午查了一下维基百科,写写我的认识,很多地方是直观理解,并没有严谨的证明。在我看来,牛顿法至少有两个应用方向,1、求方程的根,2、最优化。牛顿... 阅读全文

posted @ 2015-06-17 10:40 moffis 阅读(315) 评论(0) 推荐(0) 编辑

海森矩阵 Hessian matrix

摘要: 转自:http://www.cnblogs.com/emanlee/archive/2011/08/03/2126260.html二阶偏导数矩阵也就所谓的赫氏矩阵(Hessian matrix).一元函数就是二阶导,多元函数就是二阶偏导组成的矩阵.求向量函数最小值时用的,矩阵正定是最小值存在的充分条... 阅读全文

posted @ 2015-06-17 09:42 moffis 阅读(1798) 评论(0) 推荐(0) 编辑

Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Random forest 和 gradient boosting的区别

摘要: 转自:http://blog.csdn.net/xianlingmao/article/details/7712217Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting这些术语... 阅读全文

posted @ 2015-06-17 09:36 moffis 阅读(249) 评论(0) 推荐(0) 编辑

2015年6月16日

机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size

摘要: 转自:http://blog.csdn.net/u012162613/article/details/44265967本文是《Neural networks and deep learning》概览中第三章的一部分,讲机器学习算法中,如何选取初始的超参数的值。(本文会不断补充)学习速率(learni... 阅读全文

posted @ 2015-06-16 18:14 moffis 阅读(471) 评论(0) 推荐(0) 编辑

机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting

摘要: 转自:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/02/machine-learning-boosting-and-gradient-boosting.html前言: 本来上一章的结尾提到,准备写写线性分类的问题,文章都已经写得差不多了,但是... 阅读全文

posted @ 2015-06-16 17:00 moffis 阅读(173) 评论(0) 推荐(0) 编辑

无约束最优化方法

摘要: 转自:http://www.cnblogs.com/zhangchaoyang/articles/2600491.html梯度的方向与等值面垂直,并且指向函数值提升的方向。二次收敛是指一个算法用于具有正定二次型函数时,在有限步可达到它的极小点。二次收敛与二阶收敛没有尽然联系,更不是一回事,二次收敛往... 阅读全文

posted @ 2015-06-16 16:41 moffis 阅读(401) 评论(0) 推荐(0) 编辑

协同过滤推荐算法

摘要: 转自:http://www.cnblogs.com/zhangchaoyang/articles/2664366.htmlCollaborative Filtering Recommendation向量之间的相似度度量向量之间的相似度方法很多了,你可以用距离(各种距离)的倒数,向量夹角,Pearso... 阅读全文

posted @ 2015-06-16 16:33 moffis 阅读(317) 评论(0) 推荐(0) 编辑

2015年6月15日

拉格朗日乘子法和KKT条件

摘要: 转自:http://www.cnblogs.com/zhangchaoyang/articles/2726873.html拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不... 阅读全文

posted @ 2015-06-15 18:11 moffis 阅读(267) 评论(0) 推荐(0) 编辑

hadoop下的Kmeans算法实现

摘要: 转自:hadoop下的Kmeans算法实现一前一段时间,从配置hadoop到运行kmeans的mapreduce程序,着实让我纠结了几天,昨天终于把前面遇到的配置问题和程序运行问题搞定。Kmeans算法看起来很简单,但对于第一次接触mapreduce程序来说,还是有些挑战,还好基本都搞明白了。Kme... 阅读全文

posted @ 2015-06-15 16:36 moffis 阅读(373) 评论(0) 推荐(0) 编辑

导航