BitwiseAnd

バージョン名: BitwiseAnd-13

カテゴリー: ビット単位のバイナリー

簡単な説明: BitwiseAnd は、指定された 2 つのテンソルを要素ごとにビット単位の論理 AND 操作を実行し、多方向ブロードキャスト・ルールを適用します。

詳細な説明: 入力テンソル ab は、形状が異なり、auto_broadcast 属性が none でない場合、操作を実行する前にブロードキャストされます。auto_broadcast の値に従ってブロードキャストされます。

入力テンソル ab をブロードキャストした後、BitwiseAnd は、次のアルゴリズムに基づいて、指定されたテンソル内の対応する要素ごとにビット単位の論理 AND 操作を実行します。

boolean タイプテンソルの場合、BitwiseAnd は LogicalAnd と同等です。

テンソルが サポートされている整数タイプの場合、テンソルの各要素に対して次のようになります。

  1. 入力テンソル・データ・タイプに従って、入力テンソルの値をバイナリー表現に変換します。

  2. ab の値のバイナリー表現の各ビットに対して論理 AND を実行します。値 0false を表し、値 1true を表します。

  3. バイナリー表現の AND の結果を入力データタイプに変換します。

例 1 - ブールテンソルの BitwiseAnd 出力:

# For given boolean inputs:
a = [True, False, False]
b = [True, True, False]
# Perform logical AND operation same as in LogicalAnd operator:
output = [True, False, False]

例 2 - uint8 テンソルの BitwiseAnd 出力:

# For given uint8 inputs:
a = [21, 120]
b = [3, 37]
# Create a binary representation of uint8:
# binary a: [00010101, 01111000]
# binary b: [00000011, 00100101]
# Perform bitwise AND of corresponding elements in a and b:
# [00000001, 00100000]
# Convert binary values to uint8:
output = [1, 32]

属性:

  • auto_broadcast

    • 説明: 入力テンソルの自動ブロードキャストに使用されるルールを指定します。

    • 値の範囲:

    • タイプ: 文字列

    • デフォルト値: “numpy”

    • 必須: いいえ

入力:

  • 1: タイプ T の任意の形状のテンソル。必須。

  • 2: タイプ T の任意の形状のテンソル。必須。

出力:

  • 1: 要素ごとの BitwiseAnd 操作の結果。タイプ T のテンソルで、2 つの入力のブロードキャストされた形状と同じ形状です。

タイプ:

  • T: サポートされている整数タイプまたはブールタイプ

例:

例 1 - ブロードキャストなし

<layer ... type="BitwiseAnd">
    <input>
        <port id="0">
            <dim>256</dim>
            <dim>56</dim>
        </port>
        <port id="1">
            <dim>256</dim>
            <dim>56</dim>
        </port>
    </input>
    <output>
        <port id="2">
            <dim>256</dim>
            <dim>56</dim>
        </port>
    </output>
</layer>

例 2: numpy ブロードキャスト

<layer ... type="BitwiseAnd">
    <input>
        <port id="0">
            <dim>8</dim>
            <dim>1</dim>
            <dim>6</dim>
            <dim>1</dim>
        </port>
        <port id="1">
            <dim>7</dim>
            <dim>1</dim>
            <dim>5</dim>
        </port>
    </input>
    <output>
        <port id="2">
            <dim>8</dim>
            <dim>7</dim>
            <dim>6</dim>
            <dim>5</dim>
        </port>
    </output>
</layer>