在 Torch 1.7.1 中模拟 fmin

Emulate fmin in torch 1.7.1

当前版本存在torch.fminTorch Documentation fimin

不幸的是,我的项目依赖于 torch 1.7.1,我无法升级。有没有另一种方法可以在我的张量中使用 min 和 NaN 来模拟 fmin。 NaNs 是有意的,而不是实施不当的结果。所以我想保留它们。

它很丑,但它有效:

>>> a = torch.tensor([2.2, float('nan'), 2.1, float('nan')])
>>> b = torch.tensor([-9.3, 0.1, float('nan'), float('nan')])
>>> c = torch.stack((a,b))
>>> c[c.isnan()] = float('inf')
>>> min_, idx = torch.min(c, dim=0)
>>> min_[min_.isinf()] = float('nan')
>>> min_
tensor([-9.3000,  0.1000,  2.1000,     nan])