Softmax

Softmax - 13

版本

  • name: Softmax (GitHub)

  • domain: main

  • since_version: 13

  • function: True

  • support_level: SupportType.COMMON

  • shape inference: True

此版本的運算子自第 13 版起可用。

摘要

此運算子計算給定輸入的標準化指數值

Softmax(input, axis) = Exp(input) / ReduceSum(Exp(input), axis=axis, keepdims=1)

「axis」屬性表示執行 Softmax 的維度。輸出張量具有相同的形狀,並包含對應輸入的 Softmax 值。

屬性

  • axis - INT (預設值為 '-1')

    描述將執行 Softmax 的維度。負值表示從後面計算維度。可接受的範圍為 [-r, r-1],其中 r = rank(input)。

輸入

  • input (異質) - T

    等級 >= axis 的輸入張量。

輸出

  • output (異質) - T

    與輸入張量具有相同形狀的輸出值。

類型限制

  • T in ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) )

    將輸入和輸出類型限制為浮點數張量。

Softmax - 11

版本

  • name: Softmax (GitHub)

  • domain: main

  • since_version: 11

  • function: False

  • support_level: SupportType.COMMON

  • shape inference: True

此版本的運算子自第 11 版起可用。

摘要

此運算子計算給定輸入的每個批次層的 softmax(標準化指數)值。

輸入不需要明確是 2D 向量,而是會強制轉換為一個。對於任意 n 維張量輸入 \in [a_0, a_1, …, a_{k-1}, a_k, …, a_{n-1}],且 k 是提供的軸,則輸入將會被強制轉換為一個維度為 [a_0 * … * a_{k-1}, a_k * … * a_{n-1}] 的二維張量。對於 axis=1 的預設情況,這表示輸入張量將被強制轉換為一個維度為 [a_0, a_1 * … * a_{n-1}] 的 2D 張量,其中 a_0 通常是批次大小。在這種情況下,我們必須讓 a_0 = N 且 a_1 * … * a_{n-1} = D。必須正確比對這些維度的每一個,否則運算子將會拋出錯誤。輸出張量具有相同的形狀,並包含對應輸入的 softmax 值。

屬性

  • axis - INT (預設值為 '1')

    描述強制轉換為 2D 時的輸入軸;預設為一,因為第 0 軸最有可能描述 batch_size。負值表示從後面計算維度。可接受的範圍為 [-r, r-1],其中 r = rank(input)。

輸入

  • input (異質) - T

    如上所述,被強制轉換為大小為 (NxD) 的 2D 矩陣的輸入張量。

輸出

  • output (異質) - T

    與輸入張量具有相同形狀(沒有強制轉換的原始大小)的輸出值。

類型限制

  • T in ( tensor(double), tensor(float), tensor(float16) )

    將輸入和輸出類型限制為浮點數張量。

Softmax - 1

版本

  • name: Softmax (GitHub)

  • domain: main

  • since_version: 1

  • function: False

  • support_level: SupportType.COMMON

  • shape inference: True

此版本的運算子自第 1 版起可用。

摘要

此運算子計算給定輸入的每個批次層的 softmax(標準化指數)值。輸入是大小為 (batch_size x input_feature_dimensions) 的 2D 張量 (Tensor)。輸出張量具有相同的形狀,並包含對應輸入的 softmax 值。

輸入不需要明確是 2D 向量,而是會強制轉換為一個。對於任意 n 維張量輸入 \in [a_0, a_1, …, a_{k-1}, a_k, …, a_{n-1}],且 k 是提供的軸,則輸入將會被強制轉換為一個維度為 [a_0 * … * a_{k-1}, a_k * … * a_{n-1}] 的二維張量。對於 axis=1 的預設情況,這表示輸入張量將被強制轉換為一個維度為 [a_0, a_1 * … * a_{n-1}] 的 2D 張量,其中 a_0 通常是批次大小。在這種情況下,我們必須讓 a_0 = N 且 a_1 * … * a_{n-1} = D。必須正確比對這些維度的每一個,否則運算子將會拋出錯誤。

屬性

  • axis - INT (預設值為 '1')

    描述強制轉換為 2D 時的輸入軸;預設為一,因為第 0 軸最有可能描述 batch_size

輸入

  • input (異質) - T

    如上所述,被強制轉換為大小為 (NxD) 的 2D 矩陣的輸入張量。

輸出

  • output (異質) - T

    與輸入張量具有相同形狀(沒有強制轉換的原始大小)的輸出值。

類型限制

  • T in ( tensor(double), tensor(float), tensor(float16) )

    將輸入和輸出類型限制為浮點數張量。