簡體   English   中英

如何計算特征::張量中的非零數<T,2>

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

如果我使用布爾張量的總和,則重用永遠是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的張量,將bool加在一起會導致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";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM