BitwiseOr#

バージョン名: BitwiseOr-13

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

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

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

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

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

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

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

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

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

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

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

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

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

属性:

  • auto_broadcast

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

    • 値の範囲:

    • タイプ: 文字列

    • デフォルト値: “numpy”

    • 必須: いいえ

入力

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

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

出力

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

タイプ

  • T: サポートされている integer タイプまたは boolean タイプ。

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

<layer ... type="BitwiseOr"> 
    <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="BitwiseOr"> 
    <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>