Mod

バージョン名: Mod-1

カテゴリー: 算術単項演算

簡単な説明: Mod は、auto_broadcast 属性で指定されたブロードキャスト・ルールを適用する 2 つの指定されたテンソルを使用して、要素ごとの modulo 操作を実行します。

詳細な説明: 最初のステップとして、入力テンソル ab は、形状が異なる場合にブロードキャストされます。auto_broadcast 属性の指定に従ってブロードキャストされます。2 番目のステップとして、以下の式に従って、入力テンソル ab に対して Mod 操作が要素ごとに計算されます。

\[o_{i} = a_{i} \mod b_{i}\]

Mod 操作は、切り捨てられた除算の剰余を計算します。これは、C プログラミング言語と同じ動作です: truncated(x / y) * y + truncated_mod(x, y) = x。結果の符号は被除数の符号と等しくなります。ゼロ除算の結果は不定です。

属性:

  • auto_broadcast

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

    • 値の範囲:

    • タイプ: 文字列

    • デフォルト値: “numpy”

    • 必須: いいえ

入力:

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

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

出力:

  • 1: 要素ごとの modulo 操作の結果。2 つの入力のブロードキャストされた形状と等しい形状を持つ T タイプのテンソル。

タイプ:

  • T: 任意の数値タイプ。

例:

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

<layer ... type="Mod">
    <data auto_broadcast="none"/>
    <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="Mod">
    <data auto_broadcast="numpy"/>
    <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>