Softmax

Softmax - 13

版本

  • 名称: Softmax (GitHub)

  • 域名: main

  • since_version: 13

  • function: True

  • support_level: SupportType.COMMON

  • 形状推断: 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)。

输入

  • 输入 (异构) - T:

    输入张量的秩 >= 轴。

输出

  • 输出 (异构) - T:

    输出值与输入张量具有相同的形状。

类型约束

  • T 在 ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) ):

    将输入和输出类型限制为浮点张量。

Softmax - 11

版本

  • 名称: Softmax (GitHub)

  • 域名: main

  • since_version: 11

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

此版本的运算符自版本11起可用。

摘要

该运算符计算给定输入的批次中每一层的softmax(归一化指数)值。

输入不需要明确是一个2D向量;相反,它将被强制转换为一个2D向量。对于一个任意的n维张量输入 \in [a_0, a_1, …, a_{k-1}, a_k, …, a_{n-1}] 并且k是提供的轴,那么输入将被强制转换为一个2维张量,其维度为 [a_0 * … * a_{k-1}, a_k * … * a_{n-1}]。对于默认情况,即axis=1,这意味着输入张量将被强制转换为一个2D张量,其维度为 [a_0, a_1 * … * a_{n-1}],其中a_0通常是批量大小。在这种情况下,我们必须有a_0 = N和a_1 * … * a_{n-1} = D。这些维度中的每一个都必须正确匹配,否则操作符将抛出错误。输出张量具有相同的形状,并包含相应输入的softmax值。

属性

  • axis - INT (默认为 '1'):

    描述输入在强制转换为2D时的轴;默认值为1,因为第0轴最可能描述的是batch_size。负值表示从后向前计算维度。可接受的范围是[-r, r-1],其中r = rank(input)。

输入

  • 输入 (异构) - T:

    如上所述,输入张量被强制转换为大小为 (NxD) 的二维矩阵。

输出

  • 输出 (异构) - T:

    输出值与输入张量具有相同的形状(原始大小,无需强制转换)。

类型约束

  • T 在 ( tensor(double), tensor(float), tensor(float16) ) 中:

    将输入和输出类型限制为浮点张量。

Softmax - 1

版本

  • 名称: Softmax (GitHub)

  • 域名: main

  • since_version: 1

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

此版本的运算符自版本1起可用。

总结

该运算符计算给定输入的批次中每一层的softmax(归一化指数)值。输入是一个大小为(batch_size x input_feature_dimensions)的2-D张量(Tensor)。输出张量具有相同的形状,并包含相应输入的softmax值。

输入不需要明确是一个2D向量;相反,它将被强制转换为一个2D向量。对于一个任意的n维张量输入 \in [a_0, a_1, …, a_{k-1}, a_k, …, a_{n-1}] 并且k是提供的轴,那么输入将被强制转换为一个2维张量,其维度为 [a_0 * … * a_{k-1}, a_k * … * a_{n-1}]。对于默认情况,即axis=1,这意味着输入张量将被强制转换为一个2D张量,其维度为 [a_0, a_1 * … * a_{n-1}],其中a_0通常是批量大小。在这种情况下,我们必须有a_0 = N和a_1 * … * a_{n-1} = D。这些维度中的每一个都必须正确匹配,否则操作符将抛出错误。

属性

  • axis - INT (默认为 '1'):

    描述输入在强制转换为2D时的轴;默认值为1,因为第0轴很可能描述了batch_size

输入

  • 输入 (异构) - T:

    如上所述,输入张量被强制转换为大小为 (NxD) 的二维矩阵。

输出

  • 输出 (异构) - T:

    输出值与输入张量具有相同的形状(原始大小,无需强制转换)。

类型约束

  • T 在 ( tensor(double), tensor(float), tensor(float16) ) 中:

    将输入和输出类型限制为浮点张量。