位移

BitShift - 11

版本

  • 名称: BitShift (GitHub)

  • 域名: main

  • since_version: 11

  • 函数: False

  • support_level: 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中的广播

属性

  • 方向 - 字符串(必填):

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

输入

  • X (异构) - T:

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

  • Y (异构) - T:

    第二个操作数,位移量。

输出

  • Z (异构) - T:

    输出张量

类型约束

  • T 在 ( tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) ) 中:

    将输入和输出类型限制为整数张量。