加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Tensorflow的C API中,如何使用Eigen Tensor设置Tensorflow Ten

发布时间:2020-12-16 06:52:21 所属栏目:百科 来源:网络整理
导读:所以我想说我有一个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
所以我想说我有一个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’,它只返回2d矩阵.

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>());
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读