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 出力:

# 与えられたブール入力の場合: 
a = [True, False, False] 
b = [True, True, False] 
# LogicalAnd 演算子と同じ論理 AND 演算を実行: 
output = [True, False, False]

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

# 与えられた uint8 入力の場合: 
a = [21, 120] 
b = [3, 37] 
# uint8 のバイナリー表現を作成: 
# binary a: [00010101, 01111000] 
# binary b: [00000011, 00100101] 
# a と b の対応する要素のビット AND を実行: 
# [00000001, 00100000] 
# バイナリー値を uint8 に変換: 
output = [1, 32]

属性:

  • auto_broadcast

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

    • 値の範囲:

    • タイプ: 文字列

    • デフォルト値: “numpy”

    • 必須: いいえ

入力

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

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

出力

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

タイプ

  • T: any supported integer or boolean type

例 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>