Alp*_*DIN 6 c++ eigen tensorflow
假设我有一个4D Eigen :: TensorT。
同样,我也有一个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);
Run Code Online (Sandbox Code Playgroud)
现在,我想将数据放入x的T中。
所以我尝试做:
x.matrix<float>()() = T;
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,编译器对我大喊:
无法将赋值中的'Eigen :: Tensor'转换为'Eigen :: TensorMap,16> :: Scalar {aka float}'
当我尝试将T转换为TensorMap时,出现了更多错误。
我在这里想念什么?
小智 0
我认为问题是您正在使用“.matrix”,它只返回二维矩阵。
template <typename T>
typename TTypes<T>::Matrix matrix() {
return tensor<T, 2>();
}
Run Code Online (Sandbox Code Playgroud)
您应该使用“.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>());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2409 次 |
| 最近记录: |