gpt4 book ai didi

c++ - 在 Tensorflow 的 C++ API 中,如何使用 Eigen Tensor 来设置我的 Tensorflow Tensor?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:47:11 28 4
gpt4 key购买 nike

假设我有一个 4D Eigen::Tensor T。

同样,我还有一个 4D Tensorflow::Tensor X,其形状与 T 相同

  int size = T.dimension(0);
int rows = T.dimension(1);
int cols = T.dimension(2);
int channels = T.dimension(3);

TensorShape TS;
TS.AddDim(size);
TS.AddDim(rows);
TS.AddDim(cols);
TS.AddDim(size);

Tensor x( DT_FLOAT, TS);

现在我想把T中的数据放到x中。

所以我尝试这样做:

  x.matrix<float>()() = T;

但是当我这样做时编译器对我大吼:

cannot convert 'Eigen::Tensor' to 'Eigen::TensorMap, 16>::Scalar {aka float}' in assignment

当我尝试将 T 转换为 TensorMap 时,出现了更多错误。

我在这里错过了什么?

最佳答案

我认为问题在于您使用的是“.matrix”,它只返回二维矩阵。

template <typename T>
typename TTypes<T>::Matrix matrix() {
return tensor<T, 2>();
}

你应该使用 '.tensor',它可以返回 Nd 矩阵。

template <typename T, size_t NDIMS>
typename TTypes<T, NDIMS>::Tensor Tensor::tensor() {
CheckTypeAndIsAligned(DataTypeToEnum<T>::v());
return typename TTypes<T, NDIMS>::Tensor(base<T>(),
shape().AsEigenDSizes<NDIMS>());
}

关于c++ - 在 Tensorflow 的 C++ API 中,如何使用 Eigen Tensor 来设置我的 Tensorflow Tensor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39004144/

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