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)