тензорный поток :: ops :: Bitcast

#include <array_ops.h>

Преобразует тензор из одного типа в другой без копирования данных.

Резюме

При input тензора эта операция возвращает тензор, который имеет те же данные буфера, что и input с type данных.

Если входной тип данных T больше , чем выходной тип данных type , то форма изменяется от [...] до [..., SizeOf ( T ) / SizeOf ( type )].

Если T меньше type , оператор требует, чтобы крайний правый размер был равен sizeof ( type ) / sizeof ( T ). Затем форма изменяется от [..., sizeof ( type ) / sizeof ( T )] до [...].

tf.bitcast () и tf.cast () работают по-разному, когда реальный dtype приводится как сложный dtype (например, tf.complex64 или tf.complex128), поскольку tf.cast () делает мнимую часть 0, а tf.bitcast () дает модуль ошибка. Например,

Пример 1:

a = [1., 2., 3.] equal_bitcast = tf.bitcast (a, tf.complex128) Traceback (последний вызов последним): ... InvalidArgumentError: невозможно преобразование битов от 1 до 18 [Op: Bitcast ] equal_cast = tf.cast (a, tf.complex128) print (equal_cast) tf.Tensor ([1. + 0.j 2. + 0.j 3. + 0.j], shape = (3,), dtype = complex128)

Пример 2:

tf.bitcast (tf.constant (0xffffffff, dtype = tf.uint32), tf.uint8)

Пример 3:

х = [1., 2., 3.] у = [0., 2., 3.] равенство = tf.equal (x, y) равенство_cast = tf.cast (равенство, tf.float32) равенство_bitcast = tf. bitcast (equal_cast, tf.uint8) print (equal) tf.Tensor ([False True True], shape = (3,), dtype = bool) print (equal_cast) tf.Tensor ([0. 1. 1.], shape = (3,), dtype = float32) print (equal_bitcast) tf.Tensor ([[0 0 0 0] [0 0 128 63] [0 0 128 63]], shape = (3, 4), dtype = uint8)

ПРИМЕЧАНИЕ . Bitcast реализован как низкоуровневое приведение, поэтому машины с разным порядком байтов будут давать разные результаты.

Аргументы:

  • scope: Объект Scope

Возврат:

  • Output : выходной тензор.

Конструкторы и деструкторы

Bitcast (const :: tensorflow::Scope & scope, :: tensorflow::Input input, DataType type)

Публичные атрибуты

operation
output

Публичные функции

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Публичные атрибуты

операция

Operation operation

выход

::tensorflow::Output output

Публичные функции

Bitcast

 Bitcast(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  DataType type
)

узел

::tensorflow::Node * node() const 

оператор :: тензор потока :: Вход

 operator::tensorflow::Input() const 

оператор :: тензор потока :: Вывод

 operator::tensorflow::Output() const