eigen :: Tensor,如何从张量访问矩阵



我具有以下特征张量:

Eigen::Tensor<float, 3> m(3,10,10);

我想访问第一矩阵。在numpy中,我会这样做

m(0,:,:)

我将如何在eigen

中执行此操作

您可以使用.slice(...).chip(...)访问张量的部分。这样做以访问第一个矩阵,相当于numpy m(0,:,:)

Eigen::Tensor<double,3> m(3,10,10);          //Initialize
m.setRandom();                               //Set random values 
std::array<long,3> offset = {0,0,0};         //Starting point
std::array<long,3> extent = {1,10,10};       //Finish point
std::array<long,2> shape2 = {10,10};         //Shape of desired rank-2 tensor (matrix)
std::cout <<  m.slice(offset, extent).reshape(shape2) << std::endl;  //Extract slice and reshape it into a 10x10 matrix.

如果您想要"第二"矩阵,您改用offset={1,0,0},等等。

您可以在此处找到最新文档。

最新更新