tensorflow的功能是否类似于pytorch';s";蒙面的“填充”;

tensorflow的功能是否类似于pytorch';s";蒙面的“填充”;,tensorflow,pytorch,Tensorflow,Pytorch,我想通过掩码矩阵将INF值设置为矩阵,就像pytorch代码一样: scores.data.masked_fill_(y_mask.data, -float('inf')) 我尝试使用tf.map\fn来实现这一点,但是性能太慢了。那么tensorflow有没有有效的函数来实现这一点呢?我用了一种数学计算方法来代替。它是有效的,而且速度更快 def mask_fill_inf(matrix, mask): negmask = 1 - mask num = 3.4 * math.

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

scores.data.masked_fill_(y_mask.data, -float('inf'))

我尝试使用
tf.map\fn
来实现这一点,但是性能太慢了。那么tensorflow有没有有效的函数来实现这一点呢?

我用了一种数学计算方法来代替。它是有效的,而且速度更快

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

有谁有更好的方法吗?

我被上述答案所启发

掩蔽填充
==>

def mask_fill_inf(matrix, mask):
    num = 3.4 * math.pow(10, 38)
    return (matrix + (-(((mask * num) + num) - num)))
也许你可以使用:

tf.where(mask, default_value, data)

参考资料:

我看不到任何直接方法,但如果您有要使用特定值填充的掩码索引,则可以简单地使用该方法。您可以看到这个示例-。