C++ 如何使用c++;应用程序编程接口?

C++ 如何使用c++;应用程序编程接口?,c++,tensorflow,eigen,C++,Tensorflow,Eigen,假设我有一个张量t,它的形状{3,4,5}。我想找到第一维度和第二维度的最大值,所以这个操作的结果将是一个形状为{5,2}的矩阵 到目前为止,我试图通过从tensorflow::Tensor获取Eigen::Tensor并在循环中使用maxCoeff来实现这一点,因此: auto t_mapped = t.tensor<float, 3>(); Eigen::Matrix<float, 5, 2> maximums; for (int i = 0; i < 5;

假设我有一个
张量t
,它的形状
{3,4,5}
。我想找到第一维度和第二维度的最大值,所以这个操作的结果将是一个形状为
{5,2}
的矩阵

到目前为止,我试图通过从
tensorflow::Tensor
获取
Eigen::Tensor
并在循环中使用
maxCoeff
来实现这一点,因此:

auto t_mapped = t.tensor<float, 3>();
Eigen::Matrix<float, 5, 2> maximums;

for (int i = 0; i < 5; i++){
    MatrixXf::Index maxRow, maxCol;
    t_mapped.maxCoeff(&maxRow, &maxCol);
    maximums(i, 0) = maxRow;
    maximums(i, 1) = maxCol;
}
auto t_mapped=t.tensor();
本征::矩阵最大值;
对于(int i=0;i<5;i++){
矩阵xf::索引maxRow,maxCol;
t_mapped.maxCoeff(&maxRow,&maxCol);
最大值(i,0)=最大值;
最大值(i,1)=最大值;
}
但这不起作用,因为
t.tensor()
返回的是
Eigen::TensorMap
,而不是
Eigen::tensor
。关于
Eigen::TensorMap
类的文档似乎不多


如何从
Eigen::TensorMap
中获取
Eigen::TensorMap
,或者如何使用tensorflow API执行我试图执行的操作?

为什么不使用
axis=0调用
tf.argmax

这会返回最大元素吗?不是它的索引?argmax返回索引,max返回元素