我正在使用libtorch C ++。在python版本中,我们可以通过调用张量的numpy
值轻松检查张量的值,而在numpy
中,我们有np.isnan()
。我想知道libtorch
C++
中是否有内置函数来检查张量是否具有任何NAN
值?
谢谢, 苦参碱
答案 0 :(得分:2)
尝试at::isnan
。
int main() {
torch::Tensor tensor = torch::rand({2, 3});
std::cout << tensor << std::endl;
std::cout << at::isnan(tensor) << std::endl;
return 0;
}
注意:由于稳定版没有isnan
,因此我必须安装libtorch的每晚版本。
答案 1 :(得分:2)
加上法比奥的答案(我的声誉太低,无法置评):
如果您实际上想在assert
或if
条件下使用有关NAN的信息,则需要像这样将其从torch::Tensor
转换为C ++ bool
>
torch::Tensor myTensor;
// do something
auto tensorIsNan = at::isnan(myTensor).any().item<bool>(); // will be of type bool