tensorflow有没有类似pytorch的“masked_fill_”的功能

Jac*_*Liu 5 tensorflow pytorch

我想通过掩码矩阵将 INF 值设置为矩阵,就像 pytorch 代码一样:

scores.data.masked_fill_(y_mask.data, -float('inf'))
Run Code Online (Sandbox Code Playgroud)

我尝试使用tf.map_fn它来实现,但性能太慢。那么tensorflow有没有高效的函数来实现呢?

Jac*_*Liu 3

我用数学计算方法来代替。它是有效的并且速度更快。

def mask_fill_inf(matrix, mask):
    negmask = 1 - mask
    num = 3.4 * math.pow(10, 38)
    return (matrix * mask) + (-((negmask * num + num) - num))
Run Code Online (Sandbox Code Playgroud)

有人有更好的方法吗?