gpt4 book ai didi

c++ - Eigen 常数 TensorMap

转载 作者:可可西里 更新时间:2023-11-01 16:39:47 28 4
gpt4 key购买 nike

考虑以下(工作)片段:

Eigen::ArrayXd x (8);
x << 1, 2, 3, 4, 5, 6, 7, 8;
Eigen::TensorMap<Eigen::Tensor<double, 2>> y (x.data(), 2, 4);

这也是可行的:

const Eigen::ArrayXd const_x = x;
const Eigen::Map<const Eigen::ArrayXXd> z (const_x.data(), 2, 4);

我想弄清楚为什么我不能这样做:

const Eigen::TensorMap<const Eigen::Tensor<double, 2>> const_y (const_x.data(), 2, 4);

我正在使用 Eigen 3.3.3(也尝试过 3.3.4)

最佳答案

您正在尝试存储一个常量张量。

Error 2 error C2664: 'Eigen::TensorMap<PlainObjectType>::TensorMap(double *,__w64 int,__w64 int)' : impossible to convert parameter 1 from 'const double *' to 'double *'

我想你的意思是在 const double 上有一个张量(@CarlodelMundo 也提到过)。

const Eigen::TensorMap<Eigen::Tensor<const double, 2>> const_y(const_x.data(), 2, 4);

https://eigen.tuxfamily.org/dox/unsupported/TensorMap_8h_source.html好像没有构造函数把const作为参数1。

关于c++ - Eigen 常数 TensorMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45283468/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com