Convert

バージョン名: Convert-1

カテゴリー: タイプ変換

簡単な説明: Convert 操作は、指定された入力テンソルに対して、destination_type 属性で指定されたタイプへの要素ごとの変換を実行します。

詳細説明:

サポートされるタイプから別のサポートされるタイプへの変換は常に許可されます。その場合、2 つのタイプ間の範囲の違いによって生じる精度の損失と値の変化に注意する必要があります。例えば、32 ビット float の 3.141592 は 32 ビット int の 3 に丸められる場合があります。

負の符号付き整数から符号なし整数値への変換は、C++ 標準に従って行われます。特に、result は、ソース整数モジュロ 2^N (N はデスティネーション・タイプのビット幅) に一致するデスティネーションの符号なしタイプの一意の値です。例えば、int32 値 -1 が uint32 に変換される場合、結果は uint32 max、つまり 4,294,967,295 になります。

サポートされていない変換の結果は未定義です。出力要素は次のように表されます。

\[o_{i} = Convert(a_{i})\]

ここで、a は入力テンソルに対応します。

属性:

  • destination_type

    • 説明: デスティネーションのタイプ。

    • 値の範囲: サポートされているタイプ T のいずれか

    • タイプ: string

    • 必須: はい

入力:

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

出力:

  • 1: 要素ごとの Convert 操作の結果。destination_type タイプのテンソルであり、入力テンソルと同じ形状です。

タイプ:

  • T: サポートされるタイプ

例:

<layer ... type="Convert">
    <data destination_type="f32"/>
    <input>
        <port id="0">        <!-- type: i32 -->
            <dim>256</dim>
            <dim>56</dim>
        </port>
    </input>
    <output>
        <port id="1">        <!-- result type: f32 -->
            <dim>256</dim>
            <dim>56</dim>
        </port>
    </output>
</layer>