我目前正在使用该has_storage()
方法来检查张量是否为空,但是我想知道除此之外还有什么更好的方法!torch::Tensor
以及除了初始化总是有存储而空的没有的事实之外,使用它是否有任何影响!
问问题
4944 次
2 回答
6
经过一番挖掘,事实证明,最好的解决方案是使用.numel()
返回张量元素数量的方法。
总之:
- 要知道是否分配了张量(类型和存储),请使用 defined()。
- 要知道分配的张量是否有零个元素,请使用
numel()
- 要知道张量是否已分配以及它是否有零元素,请使用
defined()
然后numel()
旁注:空张量(例如
使用创建的张量)在使用时返回零,而大小/大小将导致异常。torch::Tensor t;
.numel()
对于返回空张量(在我上面刚刚解释的意义上)的这种情况,这是一个完美的检查。一个人可以简单地做:
if (!tensor.numel())
{
std::cout<<"tensor is empty!" << std::endl;
// do other checks you wish to do
}
于 2020-08-22T07:47:19.283 回答