打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Tensorflow的Eigen编程
1. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. http://eigen.tuxfamily.org/  
  • 支持整数、浮点数、复数,使用模板编程,可以为特殊的数据结构提供矩阵操作。比如在用ceres-solver进行做优化问题(比如bundle adjustment)的时候,有时候需要用模板编程写一个目标函数,ceres可以将模板自动替换为内部的一个可以自动求微分的特殊的double类型。而如果要在这个模板函数中进行矩阵计算,使用Eigen就会非常方便。
  • 支持逐元素、分块、和整体的矩阵操作。
  • 内含大量矩阵分解算法包括LU,LDLt,QR、SVD等等。
  • 支持使用Intel MKL加速
  • 部分功能支持多线程
  • 稀疏矩阵支持良好,到今年新出的Eigen3.2,已经自带了SparseLU、SparseQR、共轭梯度(ConjugateGradient solver)、bi conjugate gradient stabilized solver等解稀疏矩阵的功能。同时提供SPQR、UmfPack等外部稀疏矩阵库的接口。
  • 支持常用几何运算,包括旋转矩阵、四元数、矩阵变换、AngleAxis(欧拉角与Rodrigues变换)等等。
  • 更新活跃,用户众多(Google、WilliowGarage也在用),使用Eigen的比较著名的开源项目有ROS(机器人操作系统)、PCL(点云处理库)、Google Ceres(优化算法)。OpenCV自带到Eigen的接口。
2. 常用的矩阵计算工具有blas, cublas(caffe)、atlas、openblas(mxnet)、eigen,还有lapack、mkl(intel)、Armadillo(matlab)

3. Eigen库包含 Eigen模块和unsupported模块,其中Eigen模块为official module,unsupported模块为开源贡献者开发的,没有official support。

4.Eigen自带的稀疏矩阵分解功能包括LDLt、LLt分解(即Cholesky分解,这个功能是LGPL许可,不是Eigen的MPL许可)、LU分解、QR分解(这个是3.2版本之后正式Release的)、共轭梯度解矩阵等。另外还提供了到第三方稀疏矩阵库的C++接口,包括著名的SuiteSparse系列(这个系列非常强大,有机会要好好研究一下)的SparseQR、UmfPack等。

C++矩阵运算库比较大,全部学习内容很多,就了解了解。


学习链接:

http://eigen.tuxfamily.org/dox/GettingStarted.html

https://eigen.tuxfamily.org/dox/

http://eigen.tuxfamily.org/index.PHP?title=Benchmark

https://my.oschina.NET/cvnote/blog/166980

http://blog.csdn.net/houjixin/article/details/8490941

http://blog.csdn.Net/houjixin/article/details/8492841

http://blog.csdn.net/houjixin/article/details/8494582

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
大规模开源线性代数求解器(Eigen,LAPACK,Ceres)+JSim数值解算器+Plot Digitizer
C语言矩阵运算库大起底
Eigen数学库介绍及Qt配置
ceres实现的pnp解算后的位姿优化代码详解
非线性优化-SLAM14CP6
Bundle Adjustment原理及应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服