位移

位移 - 11

版本

  • 名称: BitShift (GitHub)

  • : main

  • 自版本: 11

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

该版本算子自 版本 11 起可用。

摘要

位移算子执行逐元素操作。对于每个输入元素,如果属性“direction”是“RIGHT”,该算子将其二进制表示向右移动,从而有效降低输入值。如果属性“direction”是“LEFT”,则二进制表示的位向左移动,这会增加其实际值。输入 X 是要移位的张量,另一个输入 Y 指定移位量。例如,如果“direction”是“Right”,X 是 [1, 4],S 是 [1, 1],则相应的输出 Z 将是 [0, 2]。如果“direction”是“LEFT”,X=[1, 2],S=[1, 2],则相应的输出 Y 将是 [2, 8]。

由于此算子支持 Numpy 风格的广播机制,因此 X 和 Y 的形状不必完全相同。该算子支持多向(即 Numpy 风格)广播;更多详细信息请查看ONNX 中的广播机制

属性

  • direction - STRING (必需)

    位移动方向。可以是“RIGHT”(右移)或“LEFT”(左移)。

输入

  • X (异构) - T

    第一个操作数,要移位的输入。

  • Y (异构) - T

    第二个操作数,位移量。

输出

  • Z (异构) - T

    输出张量

类型约束

  • T 属于 ( tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) )

    将输入和输出类型约束为整数张量。