bitwise_right_shift¶
对 Tensor x
和 y
逐元素进行 按位算术(或逻辑)右移
运算。
\[Out = X \gg Y\]
注解
paddle.bitwise_right_shift
遵守 broadcasting,如您想了解更多,请参见 Tensor 介绍 .
参数¶
x (Tensor)- 输入的 N-D Tensor,数据类型为:uint8,int8,int16,int32,int64。
y (Tensor)- 输入的 N-D Tensor,数据类型为:uint8,int8,int16,int32,int64。
is_arithmetic (bool) - 用于表明是否执行算术位移,True 表示算术位移,False 表示逻辑位移。默认值为 True,表示算术位移。
out (Tensor,可选)- 输出的结果 Tensor,是与输入数据类型相同的 N-D Tensor。默认值为 None,此时将创建新的 Tensor 来保存输出结果。
name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
按位算术(逻辑)右移
运算后的结果Tensor
,数据类型与x
相同。
代码示例 1¶
算术右移
>>> import paddle
>>> x = paddle.to_tensor([[10,20,40,80],[16,17,32,65]])
>>> y = paddle.to_tensor([[1,2,3,4,], [2,3,2,1]])
>>> paddle.bitwise_right_shift(x, y, is_arithmetic=True)
Tensor(shape=[2, 4], dtype=int64, place=Place(gpu:0), stop_gradient=True,
[[5 , 5 , 5 , 5 ],
[4 , 2 , 8 , 32]])
代码示例 2¶
逻辑右移
>>> import paddle
>>> x = paddle.to_tensor([[-10,-20,-40,-80],[-16,-17,-32,-65]], dtype=paddle.int8)
>>> y = paddle.to_tensor([[1,2,3,4,], [2,3,2,1]], dtype=paddle.int8)
>>> paddle.bitwise_right_shift(x, y, is_arithmetic=False) # logic shift
Tensor(shape=[2, 4], dtype=int8, place=Place(gpu:0), stop_gradient=True,
[[123, 59 , 27 , 11 ],
[60 , 29 , 56 , 95 ]])