我希望使用按位操作降低TensorFlow张量的精度。例如,对于NumPy数组,可以通过以下命令实现:
a = np.array(5) # =[5]
b = np.right_shift(a, 1) # =[2]
c = np.left_shift(b, 1) # =[4]
有办法做到这一点与TensorFlow?
根据Tensorflow网站上的文档:
https://www.tensorflow.org/api_docs/python/tf/bitwise
tf.bitwise.left_shift(x, y, name=None)
x张量。必须是以下类型之一:int8, int16, int32,Int64, uint8, uint16, uint32, uint64.
y张量。必须与x具有相同的类型。
<<p>名称/strong>:操作的名称(可选)。
下面是一个例子:
from tensorflow.python.ops import bitwise_ops
import tensorflow as tf
dtype = tf.int8
lhs = tf.constant([5], dtype=dtype)
rhs = tf.constant([1], dtype=dtype)
right_shift_result = bitwise_ops.right_shift(lhs, rhs)
tf.print(right_shift_result)
left_shift_result = bitwise_ops.left_shift(right_shift_result, rhs)
tf.print(left_shift_result)
:
[2]
[4]