如何计算特征中的非零数::张量<T,2>

How to count the number of nonzero in the eigen::Tensor<T,2>

本文关键字:lt 张量 gt 计算 何计算 特征      更新时间:2023-10-16

如果我使用布尔张量的总和,则重用永远是 1

Eigen::Tensor<int,2> my_rankx (3,3);
my_rankx.setValues(
{
    {1, 2, 3},
    {0, 0, 0},
    {11, 12, 0}
});
auto number_matrix = (my_rankx.constant(static_cast<int>(0))==my_rankx);
cout<<number_matrix.sum()<<endl; // result of cout is 1

(my_rankx.constant(0) == my_rankx)bool s 的张量,将 bool s 相加得到 falsetrue ,它们分别转换为 01。 (顺便说一下,问题中的static_cast<int>(0)是多余的,因为0属于 int 类型。

您可以改用std::countdata()

std::cout << std::count(my_rankx.data(), my_rankx.data() + my_rankx.size(), 0)
          << "n";