对于浮点数,Tensorflow逐位NOT运算

pir*_*pir 2 bit-manipulation tensorflow

我有一个Tensorflow布尔向量,我需要逐位反转,使​​得0(False)的所有值变为1(True),反之亦然.tf.logical_not存在,但它只接受布尔向量.是否存在Tensorflow在int或float的向量上执行此操作,因此我不需要重构我的张量?

mrr*_*rry 5

TensorFlow不包含用于执行按位NOT的特定运算符,但您可以使用tf.bitcast()整数和算术运算来模拟它.例如,以下内容将反转单个浮点值中的位:

input_value = tf.constant(37.0)

bitcast_to_int32 = tf.bitcast(input_value, tf.int32)

invert_bits = tf.constant(-1) - bitcast_to_int32

bitcast_to_float = tf.bitcast(invert_bits, tf.float32)
Run Code Online (Sandbox Code Playgroud)

您可以使用此答案确认输入和输出是按位反转,以将浮点值转换为二进制.