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 在 ( 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 (归一化指数) 值。

输入不需要明确是二维向量;它将被强制转换为二维。对于任意 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}] 的二维张量,其中 a_0 通常是批次大小。在这种情况下,必须有 a_0 = N 且 a_1 * … * a_{n-1} = D。这些维度必须正确匹配,否则运算符将抛出错误。输出张量形状与输入张量相同,包含对应输入的 Softmax 值。

属性

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

    描述输入强制转换为二维时的轴;默认为 1,因为第 0 个轴很可能描述批次大小。负值表示从后往前计数维度。可接受的范围是 [-r, r-1],其中 r = rank(input)。

输入

  • input (异构) - T

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

输出

  • output (异构) - T

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

类型约束

  • T 在 ( 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) 的二维张量 (Tensor)。输出张量形状与输入张量相同,包含对应输入的 Softmax 值。

输入不需要明确是二维向量;它将被强制转换为二维。对于任意 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}] 的二维张量,其中 a_0 通常是批次大小。在这种情况下,必须有 a_0 = N 且 a_1 * … * a_{n-1} = D。这些维度必须正确匹配,否则运算符将抛出错误。

属性

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

    描述输入强制转换为二维时的轴;默认为 1,因为第 0 个轴很可能描述批次大小

输入

  • input (异构) - T

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

输出

  • output (异构) - T

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

类型约束

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

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