2017-05-13 8 views
0

私はTensor tの形を持っています。{3, 4, 5}です。私は第1次元と第2次元の最大値を探したいので、この演算の結果は形状が{5, 2}の行列になります。どのようにして、ランク3の最大値のインデックスを得ることができますテンソル::テンソルは、C + +のAPIを使用して?

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

をしかしt.tensor<float, 3>()Eigen::TensorMap<Eigen::Tensor<float, 3, 1, long>, 16, MakePointer>、ないEigen::Tensorを返すので、これは動作しません:

は、これまでのところ私はそう、tensorflow::TensorからEigen::Tensorを取得し、ループ内maxCoeffを使用してこれにしようとしています。 Eigen::TensorMapクラスには多くのドキュメントがないようです。

Eigen::TensorEigen::TensorMapから取得するか、テンソルフローAPIを使って何をしようとしていますか?

答えて

1

tf.argmaxaxis=0と呼んでみませんか?

+0

最大の要素を返すことはありませんか?それのインデックスではない? –

+1

argmaxはインデックスを返し、maxは要素を返します –

関連する問題