有人有如何在Pytorch中使用BitShift运算符的示例吗?
位移运算符执行逐元素操作。
它的工作方式与 Python 和 NumPy 相同,即将整数的位向左或向右移动。符号<<
和>>
分别表示左移和右移。
x = torch.tensor([16, 4, 1])
y = torch.tensor([1, 2, 3])
z = x << y
print(z)
tensor([32, 16, 8])
这相当于 16 << 1
(np.left_shift(16, 1)
)、4 << 2
和 1 << 3
。
对于每个输入元素,如果属性“direction”为“RIGHT”,该运算符将其二进制表示向右移动,使输入值有效减小。如果属性“direction”为“LEFT”,则二进制表示的位向左移动,这会导致其实际值增加。
此运算符支持多方向(即Numpy风格)广播。