【发布时间】:2021-08-02 13:56:32
【问题描述】:
我不明白this line:
lprobs[lprobs != lprobs] = torch.tensor(-math.inf).to(lprobs)
没有评论,是不是一些著名的 Python(或 PyTorch?)习语?有人可以解释它的含义,或者展示一种使意图更清晰的不同方式吗?
lprobs 是pytorch Tensor,它可以包含任何大小的浮点类型(我怀疑这段代码是为了支持 int 或复杂类型)。据我所知,张量类不会覆盖__ne__ 函数。
【问题讨论】:
-
看起来
lprobs[lprobs != lprobs]正在选择lprobs中包含NaN 的那些元素。然后将它们设置为负无穷大......? -
我猜张量是基于例如一个 numpy 矩阵,这是成语:numpy.org/doc/stable/user/…
-
@jonrsharpe 我熟悉
x[b]的想法。我对x[x!=x]感到困惑。 -
这个是
x[b],其中b = x != x。在链接的示例中,创建掩码的比较(另见numpy.org/doc/stable/user/…)是y>20。
标签: python python-3.x pytorch