Hardmax

Hardmax - 13

版本

  • 名称: Hardmax (GitHub)

  • 域名: main

  • since_version: 13

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

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

摘要

该运算符计算给定输入的hardmax值:

如果元素是沿着指定轴线的第一个最大值,则 Hardmax(输入中的元素, 轴线) = 1,否则为 0

“axis”属性表示将沿其执行Hardmax的维度。输出张量具有相同的形状,并包含相应输入的Hardmax值。

属性

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

    描述将执行Hardmax操作的维度。 负值表示从后向前计数维度。 接受的范围是[-r, r-1],其中r = rank(input)。

输入

  • 输入 (异构) - T:

    输入张量的秩 >= 轴。

输出

  • 输出 (异构) - T:

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

类型约束

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

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

Hardmax - 11

版本

  • 名称: Hardmax (GitHub)

  • 域名: main

  • since_version: 11

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

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

摘要

该运算符为给定输入的批次中的每一层计算hardmax(第一个最大值为1,其他所有值为0)值。

输入不需要明确是一个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。这些维度必须正确匹配,否则操作符将抛出错误。输出张量具有相同的形状,并包含相应输入的hardmax值。

属性

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

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

输入

  • 输入 (异构) - T:

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

输出

  • 输出 (异构) - T:

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

类型约束

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

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

Hardmax - 1

版本

  • 名称: Hardmax (GitHub)

  • 域名: main

  • since_version: 1

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

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

总结

该运算符为给定输入的批次中的每一层计算hardmax值(第一个最大值为1,其他所有值为0)。输入是一个大小为(batch_size x input_feature_dimensions)的2-D张量(Tensor)。输出张量具有相同的形状,并包含相应输入的hardmax值。

输入不需要明确是一个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) ) 中:

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