Побитовая операция над тензорами

avatar
wilsb
9 августа 2021 в 06:29
52
1
2

Я хочу уменьшить точность тензора TensorFlow, используя побитовые операции. Например, с массивом NumPy этого можно добиться следующим образом:

a = np.array(5) # =[5]
b = np.right_shift(a, 1)  # =[2]
c = np.left_shift(b, 1)  # =[4]

Есть ли способ сделать это с помощью TensorFlow?

Источник

Ответы (1)

avatar
H Sa
9 августа 2021 в 06:40
1

Согласно документации на веб-сайте 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.

name: имя операции (необязательно).

Вот пример:

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]