Mod

Mod - 13

版本

  • 名称Mod (GitHub)

  • : main

  • 起始版本: 13

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

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

摘要

执行逐元素的二元模运算。语义和支持的数据类型取决于 fmod 属性的值,该属性必须是 0 (默认) 或 1

如果 fmod 属性设置为 0,则 T 仅限于整数数据类型,其语义遵循 Python % 运算符。结果的符号与除数相同。

如果 fmod 设置为 1,则此运算符的行为遵循 C 语言中的 fmod 函数,并且 T 仅限于浮点数据类型。此运算符的结果是除法运算 x / y 的余数,其中 xy 分别是 AB 的元素。结果正是值 x - n * y,其中 nx / y 并截断其小数部分。返回值的符号与 x 相同(除非 x-0),并且大小小于或等于 |y|。当 fmod 设置为 1 时,适用以下特殊情况:

  • 如果 x-0y 大于零,则可能会返回 +0-0

  • 如果 x±∞y 不是 NaN,则返回 NaN

  • 如果 y±0x 不是 NaN,则应返回 NaN

  • 如果 y±∞x 是有限的,则返回 x

  • 如果任一参数是 NaN,则返回 NaN

此运算符支持多向(即 NumPy 风格)广播;有关更多详细信息,请查看ONNX 中的广播

属性

  • fmod - INT(默认为 '0'

    运算符是否应表现得像 fmod(默认值为 0 表示它将执行整数模);将其设置为 1 以强制执行 fmod 处理

输入

  • A (异构) - T

    被除数张量

  • B (异构) - T

    除数张量

输出

  • C (异构) - T

    余数张量

类型约束

  • T 包含 (tensor(bfloat16), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8))

    将输入和输出类型限制为高精度数值张量。

Mod - 10

版本

  • 名称Mod (GitHub)

  • : main

  • since_version: 10

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已在 版本 10 中提供。

摘要

执行逐元素的二元模运算(支持 Numpy 风格的广播)。余数的符号与除数的符号相同。

Mod 运算符也可以像 C 语言的 fmod() 或 numpy.fmod 一样工作。在这种情况下,余数的符号将与被除数相同(与整数模相反)。为了强制执行类似 numpy.fmod() 的行为,提供了一个“fmod”属性。此属性默认设置为 0,导致其行为类似于整数模。将此属性设置为 1 会导致余数的计算方式类似于 numpy.fmod()。

如果输入类型是浮点数,则 fmod 属性必须设置为 1。

如果被除数为零,结果将取决于平台。

此操作符支持多向(即 Numpy 风格)广播;有关更多详细信息,请查看 ONNX 中的广播

属性

  • fmod - INT(默认为 '0'

    运算符是否应表现得像 fmod(默认值为 0 表示它将执行整数模);将其设置为 1 以强制执行 fmod 处理

输入

  • A (异构) - T

    被除数张量

  • B (异构) - T

    除数张量

输出

  • C (异构) - T

    余数张量

类型约束

  • T 包含 (tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8))

    将输入和输出类型限制为高精度数值张量。