0
Eigen3ライブラリのTensorモジュールを使用してテンソルのFrobeniusノルムを計算しようとしています。Eigen3 Tensorクラスのすべての次元に沿った縮小の評価
は、ここに私のコードです:
#include <unsupported/Eigen/CXX11/Tensor>
int main()
{
Eigen::Tensor<double, 3> t(4, 3, 2);
t.setRandom();
// Computing the Frobenius norm. The result is a single scalar value.
const auto frob_norm_op = t.square().sum().sqrt().eval();
// Is there an easier way to extract the scalar value ?
Eigen::TensorEvaluator<const decltype(frob_norm_op), Eigen::DefaultDevice>
frob_norm_eval (frob_norm_op, Eigen::DefaultDevice());
const double frob_norm = frob_norm_eval.coeff(0);
return 0;
}
これは動作しますが、私はfrob_norm_op
からfrob_norm
を抽出するための簡単な方法が存在すべきであることを推測します。何か案は?
The exampleは、実行時エラーをスローします。