可以通过赋值将Eigen::Mapa转换为 a Matrix:
vector<float> v = { 1, 2, 3, 4 };
auto m_map = Eigen::Map<Eigen::Matrix<float, 2, 2, Eigen::RowMajor>>(&v[0]);
Eigen::MatrixXf m = m_map;
cout << m << endl;
Run Code Online (Sandbox Code Playgroud)
这产生:
1 2
3 4
Run Code Online (Sandbox Code Playgroud)
如果我尝试用 a 做类似的事情Tensor:
vector<float> v = { 1, 2, 3, 4 };
auto mapped_t = Eigen::TensorMap<Eigen::Tensor<float, 2, Eigen::RowMajor>>(&v[0], 2, 2);
Eigen::Tensor<float, 2> t = mapped_t;
Run Code Online (Sandbox Code Playgroud)
我只是得到编译器错误YOU_MADE_A_PROGRAMMING_MISTAKE。有没有办法将 TensorMap 转换为 Tensor?