megengine.functional.right_shift#

right_shift(x, y)[源代码]#

元素右移。

根据输入张量 \(x_i\) 的相应元素 \(y_i\),将输入张量 \(y\) 的每个元素的位向右移动。

备注

>> 运算符可以作为在 Tensors 上进行 `F. right_shift’ 操作的简写。

备注

这个操作必须是一个算术移位(即符号传播),因此等同于向下取整除以 2 的幂。

参数:
  • x – 第一个输入张量。应该有一个整数数据类型。

  • y – 第二个输入张量。必须与 \(x\) 兼容(参见 广播机制与规则 )。应该有一个整数数据类型。每个元素必须大于或等于 0

返回:

一个 Tensor,包含输入 Tensor 逐元素向右移的结果。该 Tensor 的类型由 类型提升规则 决定。

实际案例

>>> F.right_shift([2, 4, 8], 1)
Tensor([1 2 4], dtype=int32, device=xpux:0)

逐个元素的左移:

>>> x = Tensor([2, 8, 24])
>>> y = Tensor([1, 2, 3])
>>> F.right_shift(x, y)
Tensor([1 2 3], dtype=int32, device=xpux:0)

广播:

>>> F.right_shift([10, 20, 40], 2)
Tensor([ 2  5 10], dtype=int32, device=xpux:0)