Duanxx的Design abroad: C++矩阵运算库Eigen 概要
一、概要
这两天想起来要做神经网络的作业了,要求用C++完毕神经网络的算法。
摆在面前的第一个问题就是,神经网络算法中大量用到了矩阵运算。可是C++不像matlab那样对矩阵运算有非常好的支持。本来准备自己写一个C++的矩阵运算的代码的,google了一下后。找到了几个不错的C++矩阵运算库,我选用的是Eigen这个C++矩阵运算库。
Eigen有很丰富的功能:
l 支持全部大小的矩阵运算,从非常小的大小固定的矩阵运算。到随意大的稠密矩阵的运算,甚至连稀疏矩阵的运算它也支持。
l 支持当前全部的标准数据类型。除了我们经常使用的整型、浮点型外。它同一时候还支持复数类型以及自己定义类型等等,详见:http://eigen.tuxfamily.org/dox/TopicCustomizingEigen.html#CustomScalarType
l 支持大量的矩阵分解和矩阵空间变换的操作,详见:
http://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html
http://eigen.tuxfamily.org/dox/group__TutorialGeometry.html
l 支持大量的专用模块。比方:非线性优化、多项式解法、FFT等等,可是这些专用模块并不在Eigen的源代码中,须要另外下载。详见:
http://eigen.tuxfamily.org/dox/unsupported/index.html
l 快速运算,基于Inter SSE 2/3/4指令集做了运算优化
二、下载和安装
2.1下载
Eigen的主页为:http://eigen.tuxfamily.org/index.php?title=Main_Page
在写这篇文章的时候,Eigen的版本号已经到了3.3.2了。
主页上就有最新版本号的Eigen的下载链接,或者直接使用以下的链接,就能够下载:
http://bitbucket.org/eigen/eigen/get/3.2.2.tar.bz2
下载后文件名称为eigen-eigen-1f059a5ac4ac。解压,并把文件名称改为eigen3,我把这整个文件考到了D:\Program Files下。
2.2安装
因为Eigen不过由一些头文件组成的,所以没有必要对Eigen进行编译,就能够直接使用,且平台无关。
这里主要关心的是eigen3/Eigen目录,这个目录以下就是Eigen的源代码,也就是我们须要加入的头文件目录。
在eigen3/unsupported目录以下的Eigen目录中。是Eigen的一些扩展功能的代码,须要的话,也能够加入这个头文件目录。
这里我使用的是Vs2012做測试。新建一个空的project之后,配置一下project属性。这里我仅仅加入了Eigen的核心代码的路径。
三、 測试
<span style="font-size:18px;">#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd; int main()
{
MatrixXdm(2,2);
m(0,0)= 3;
m(1,0)= 2.5;
m(0,1)= -1;
m(1,1)= m(1,0) + m(0,1);
std::cout<< m << std::endl;
}
</span>
版权声明:本文博主原创文章。博客,未经同意不得转载。
Duanxx的Design abroad: C++矩阵运算库Eigen 概要的更多相关文章
- c++矩阵运算库Eigen简介
C++矩阵运算库Eigen介绍 C++中的矩阵运算库常用的有Armadillo,Eigen,OpenCV,ViennaCL,PETSc等.我自己在网上搜了一下不同运算库的特点,最后选择了Eigen.主 ...
- Eigen学习笔记2:C++矩阵运算库Eigen介绍
Eigen常规矩阵定义 1.使用 Eigen的使用在官网上有详细的介绍,这里对我学习过程中用到的基本操作进行介绍.首先是矩阵的定义.在矩阵类的模板参数共有6个.一般情况下我们只需要关注前三个参数即可. ...
- C++矩阵运算库推荐
最近在几个地方都看到有人问C++下用什么矩阵运算库比较好,顺便做了个调查,做一些相关的推荐吧.主要针对稠密矩阵,有时间会再写一个稀疏矩阵的推荐. Armadillo:C++下的Matlab替代品 地址 ...
- C++矩阵运算库armadillo配置笔记
前言 最近在用C++实现神经网络模型,优化算法需要用到矩阵操作,一开始我用的是boost的ublas库,但用着用着感觉很不习惯,接口不够友好.于是上网搜索矩阵运算哪家强,大神们都推荐armadillo ...
- 基于React Native的Material Design风格的组件库 MRN
基于React Native的Material Design风格的组件库.(为了平台统一体验,目前只打算支持安卓) 官方网站 http://mrn.js.org/ Github https://git ...
- ElementUI(vue UI库)、iView(vue UI库)、ant design(react UI库)中组件的区别
ElementUI(vue UI库).iView(vue UI库).ant design(react UI库)中组件的区别: 事项 ElementUI iView ant design 全局加载进度条 ...
- 异想家纯C语言矩阵运算库
Sandeepin最近做的项目中需要在嵌入式芯片里跑一些算法,而这些单片机性能不上不下,它能跑些简单的程序,但又还没到上Linux系统的地步.所以只好用C语言写一些在高级语言里一个函数就解决的算法了, ...
- C++矩阵处理库--Eigen初步使用
项目要进行比较多的矩阵操作,特别是二维矩阵.刚开始做实验时,使用了动态二维数组,于是写了一堆Matrix函数,作矩阵的乘除加减求逆求行列式.实验做完了,开始做代码优化,发现Matrix.h文件里适 ...
- C++矩阵库 Eigen 快速入门
最近需要用 C++ 做一些数值计算,之前一直采用Matlab 混合编程的方式处理矩阵运算,非常麻烦,直到发现了 Eigen 库,简直相见恨晚,好用哭了. Eigen 是一个基于C++模板的线性代数库, ...
随机推荐
- Matlab图像彩色转灰色
Matlab图像彩色转灰色 时间:2014年5月7日星期三 网上找的程序.实现图像彩色转灰色: I1=imread('C:\Users\Yano\Desktop\matlab\test1\4.jpg' ...
- webservice之cxf样例
整理參考于网上资源: http://wenku.baidu.com/link?url=MbPPOKCficQCAwSZduszpMFSD3f8xCKeNz6YUtwFS1TkHharz1aPPfkXD ...
- nginx.conf 文中描述的配置文件
###############################nginx.conf 件里文说明 #user nobody; # user 主模块指令,指令nginx worker 执行用户和用户组(u ...
- ssh, maven and eclipse
那些破事
Unix根据该理念keep it simple, keep it stupid.可在j2ee有keep it complex, keep it smart. 所以,我彻底晕菜. 最后能活着把sprin ...
- SVNKIT操作SVN版本库的完整例子
Model: package com.wjy.model; public class RepositoryInfo { public static String storeUrl="http ...
- hdu1267(递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1267 题意:假定一个字符串由m个H和n个D组成,从左到右扫描该串,如果字符H的累计数总是不小于字符D的 ...
- Win32 Windows编程 十
一 Windows画图 1 图形绘制 1.1 图形绘制的方式 获取到画图的句柄,设备描写叙述符(DC).使用对应的画图API.在设备上绘制图形 1.2 颜色 RGB,每种颜色8位,共24位颜色 32位 ...
- eclipse failed to create the java virtual machine 问题图文解析(转)
clipse failed to create the java virtual machine 解决方法: 1.问题现象 2.java虚拟机初始化失败!寻找eclipse解压路径 3.寻找ecl ...
- HUST 1017(DLX)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=65998#problem/A 题意:求01矩阵的精确覆盖. DLX学习资料:ht ...
- veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响
veridata实验举例(6)验证agent启动先后顺序是否对捕获update操作有影响 续接veridata实验系列 上篇:"veridata实验举例(5)改动主键上的列值.update ...