megengine.functional.left_shift#

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

逐个元素的左移。

将输入张量 \(x\) 的每个元素 \(x_i\) 的比特向左移动,方法是将 \(y_i\) (即输入张量 \(y\) 中各自的元素 \(y_i\) )的零追加到 \(x_i\) 的右侧。

备注

<< 操作符可以用作张量上 left_shift 的简写。

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

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

返回:

一个张量,包含元素左移操作的结果。返回的张量必须由 类型提升规则 决定数据类型。

实际案例

>>> F.left_shift([1, 2, 3], 1)
Tensor([2 4 6], dtype=int32, device=xpux:0)

逐个元素的左移:

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

广播:

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