面具有什么用?

2024-05-16 11:09:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我经常看到使用掩码(C,C++,Python,java),比如蒙面的SoStMax或者其他东西。我不明白它的用途(我说的不是计算机视觉中的掩模,而是一般编程中的掩模)。在

我把mask理解为您在x & 1之类的按位操作中使用的东西:这里1是一个在按位操作中执行某些操作的掩码。在

但是,我看到越来越多的人使用下面这样的面具:

import theano
import theano.tensor as tt

    # The context document (2D matrix of long type called context.)
    context_bt = tt.lmatrix('context')

    # Context document mask used to distinguish real symbols from the sequence and padding symbols that are at the end.

    context_mask_bt = tt.matrix('context_mask')

如果您能帮助我理解:

  1. 什么是掩码变量(比如这里为什么把第二个变量称为mask,这里有什么特别的地方)?

  2. 它们在哪里使用?

  3. 如何创建掩码变量?

谢谢,干杯:)。在


Tags: theimportcontextmasktheanojavadocumentmatrix
2条回答

What are mask variables?

按位“与”与“或”运算具有以下属性:

X & 1 == X
X & 0 == 0

所以如果你AND任何一个位是1,它不会改变它的值。如果AND任何一个位为0,它将重置为0。因此,在一个值1和0的组合中执行AND操作,可以将一些位重置为0,而其他位则保持不变。在

^{pr2}$

在另一方面,如果OR任何一位为1,则将其设置为1。如果OR任何一个位为0,它不会改变它的值。所以你可以设置一些位,而另一些保持不变。在

Where are they used?

将多个位组合到一个变量中可以创建掩码,您可以使用AND重置某些位,或者使用OR来设置它们。在

How can I create a mask variable?

你决定你需要设置或重设哪些位,然后相应地计算它。因为支持二进制表示法的语言不多,而且过于冗长,它们通常以十六进制编写,因为从二进制到十六进制以及从二进制到十六进制的简单映射(4位映射到一个十六进制数字)。在

与其说它只是一个面具,不如叫它一个小面具,因为这是完整的术语。在

位掩码通常用于检查是否设置了整数上的位,或设置它们。它允许人们做一些形式上的事情

if (time & CHEESE_MASK) eat()
if (time & CAKE_MASK) tea()

您可能会注意到,在这个例子中,这可能是奶酪和蛋糕的时间。 这提供了一种非常有用的方法来在内存中的小空间中进行“配置”,或者以一种很好的、易于阅读的格式对函数参数进行配置

^{pr2}$

建议是时候去买奶酪和蛋糕了。在

相关问题 更多 >