建設(shè)了網(wǎng)站怎么管理系統(tǒng)代發(fā)新聞稿的網(wǎng)站
0 引言
用python實現(xiàn)了某些算法之后,想轉(zhuǎn)成C++來獲取更高的性能。但是python數(shù)組的操作太靈活了,尤其是3維、4維、5維等高維數(shù)組,以及它們的廣播、數(shù)組坐標(biāo)、切片等機制。還有numpy的pad、where等操作更是給C++轉(zhuǎn)換帶來了更多的麻煩。
查閱了相關(guān)的資料,發(fā)現(xiàn)Eigen庫有Tensor結(jié)構(gòu),可以實現(xiàn)python的高維數(shù)組運算。但是Eigen::Tensor在網(wǎng)上的資料非常少,官網(wǎng)對其也描述甚少。甚至由于AI的流行,許多錯誤的信息也給我們帶來很多困擾。
我想整理一個比較全面的關(guān)于Eigen::Tensor的使用幫助,包括函數(shù)原型和示例代碼,以及它的特性。與python用到的一些函數(shù)相對照。希望對大家有所幫助。
參考資料:
1 概述
1.1 什么是 Eigen::Tensor
Eigen::Tensor是Eigen庫中提供的高維(任意維度)數(shù)組(張量)庫,支持動態(tài)或靜態(tài)維度。
可以用于進(jìn)行高效的矩陣和張量運算。
適用于科學(xué)計算、機器學(xué)習(xí)等領(lǐng)域。
1.2 核心特性
支持任意維度(如 3D、4D 等)
逐元素操作、收縮(contraction)、卷積等
內(nèi)存布局控制(列優(yōu)先/行優(yōu)先)
與 Eigen 矩陣/向量互操作性
模板類
高性能計算,可以在GPU上并行計算
強類型檢查,在編譯時對維度和數(shù)據(jù)類型做檢查,(但提示并不友好)
廣播機制(不像python那樣方便)