2016-10-11 6 views
-4

Ich sehe oft die Verwendung von Masken (in C, C++, Python, Java), wie maskierte Softmax oder so. Ich kann seinen Gebrauch nicht verstehen (ich spreche nicht über Masken in der Computer Vision, sondern über Masken in der Programmierung im Allgemeinen).Was ist die Verwendung von Maske?

Ich verstand Maske als etwas, das Sie in einer bitweisen Operation wie x & 1 verwendet: hier ist 1 eine Maske, die etwas in der bitweisen Operation tut.

Aber sehe ich mehr und mehr Verwendung von Masken wie unten:

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') 

Ich wäre sehr dankbar, wenn Sie mir zu verstehen helfen könnten:

  1. Was Maskengrößen sind (wie hier warum nennst du die zweite var eine maske, irgendwas besonderes hier)?

  2. Wo werden sie verwendet?

  3. Wie kann ich eine Maskenvariable erstellen?

Danke, Prost :).

+0

Ich kann Downvotes nicht verstehen ... es es duplizieren ... – John77

+0

Ich denke, das ist, weil Ihre Frage zu breit ist ... – n00dl3

+1

Es gibt * one * downvote (Upd: OK, zwei jetzt ...) Frage, wie es scheint, ist zu breit. Es gibt viele Dinge, die "Masken" genannt werden. Das Beispiel in der Frage ist anwendungsspezifisch, ohne dass ein Kontext angezeigt wird. –

Antwort

1

Anstatt es nur als eine Maske zu bezeichnen, nennen wir es eine Bitmaske, wie es der volle Ausdruck ist.

Eine Bitmaske wird normalerweise verwendet, um zu prüfen, ob Bits in einer Ganzzahl gesetzt sind, oder um sie zu setzen. Es erlaubt Menschen, etwas von der Form zu tun

Sie können hier beachten, dass es beide Zeit für Käse und Kuchen in diesem Beispiel sein kann. Dies stellt eine sehr nützliche Art und Weise eine ‚Konfiguration‘ zu haben in einem kleinen Raum im Speicher oder in einem netten einfachen Format für ein Funktionsargument lesen - zum Beispiel

shop (CHEESE_MASK | CAKE_MASK) 

würde vorschlagen, es ist Zeit für Käse zu kaufen ist und Kuchen.

+0

plz sehe die Frage erneut, ich habe die spezifische var namens die Maske hier hinzugefügt. – John77

+0

nicht sicher, dass Ihre Änderung hilft, Ihre Frage klarer zu machen ... – UKMonkey

0

Was sind Maskenvariablen?

bitweise UND und ODER-Verknüpfung haben folgende Eigenschaften:

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

Also, wenn Sie AND irgendein Bit mit 1 es ändert sich nicht, es Wert ist. Wenn Sie AND irgendein Bit mit 0 setzen, wird es auf 0 zurückgesetzt. Indem Sie also Ein-und-Nullen in einem Wert kombinieren und die Operation AND ausführen, können Sie einige Bits auf 0 zurücksetzen, während andere unverändert bleiben.

X | 1 == 1 
X | 0 == X 

Auf einer anderen Seite, wenn Sie OR irgendein Bit mit 1 es auf 1 gesetzt ist Wenn Sie OR ein Bit mit 0 es nicht, es ist Wert nicht ändert. So können Sie einige Bits setzen, während andere unberührt bleiben.

Wo werden sie verwendet?

mehrere Bits in einer Variablen Die Kombination schafft Maske, die Sie mit AND verwenden können einige Bits oder mit OR zurückgesetzt sie einzustellen.

Wie kann ich eine Maskenvariable erstellen?

Sie bestimmen, welche Bits Sie setzen oder zurücksetzen müssen und berechnen Sie diese entsprechend. Da nicht viele Sprachen die binäre Notation unterstützen und es zu ausführlich ist, werden sie normalerweise in hex geschrieben, da es eine einfache Zuordnung von binär zu hex und umgekehrt gibt (4-Bit-Karte zu einer hexadezimalen Zahl).

+0

im Code in der Frage, warum sollten die Leute die zweite Variable eine Maske nennen? – John77

+0

@ John77, weil es als Maske verwendet werden sollte – Slava

Verwandte Themen