Bitcast

clase final pública Bitcast

Transmite un tensor de un tipo a otro sin copiar datos.

Dado un tensor "entrada", esta operación devuelve un tensor que tiene los mismos datos del búfer que "entrada" con el tipo de datos "tipo".

Si el tipo de datos de entrada `T` es mayor que el tipo de datos de salida `type`, entonces la forma cambia de [...] a [..., sizeof(`T`)/sizeof(`type`)].

Si `T` es más pequeño que `type`, el operador requiere que la dimensión más a la derecha sea igual a sizeof(`type`)/sizeof(`T`). La forma luego va de [..., sizeof(`type`)/sizeof(`T`)] a [...].

tf.bitcast() y tf.cast() funcionan de manera diferente cuando el tipo d real se convierte como un tipo d complejo (por ejemplo, tf.complex64 o tf.complex128), ya que tf.cast() convierte la parte imaginaria en 0, mientras que tf.bitcast() proporciona el módulo. error. Por ejemplo,

Ejemplo 1:

>>> a = [1., 2., 3.] >>> igualdad_bitcast = tf.bitcast(a, tf.complex128) Rastreo (última llamada más reciente): ... InvalidArgumentError: No se puede transmitir bits del 1 al 18 [ Op:Bitcast] >>> igualdad_cast = tf.cast(a, tf.complex128) >>> print(equality_cast) tf.Tensor([1.+0.j 2.+0.j 3.+0.j] , forma=(3,), dtipo=complejo128)

Ejemplo 2:

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

Ejemplo 3:

>>> x = [1., 2., 3.] >>> y = [0., 2., 3.] >>> igualdad= tf.equal(x,y) >>> igualdad_cast = tf. cast(igualdad,tf.float32) >>> igualdad_bitcast = tf.bitcast(igualdad_cast,tf.uint8) >>> print(igualdad) tf.Tensor([False True True], forma=(3,), dtype=bool ) >>> print(equality_cast) tf.Tensor([0. 1. 1.], forma=(3,), dtype=float32) >>> print(equality_bitcast) tf.Tensor( [[ 0 0 0 0] [ 0 0 128 63] [ 0 0 128 63]], forma=(3, 4), dtype=uint8)

NOTA : Bitcast se implementa como una conversión de bajo nivel, por lo que las máquinas con diferentes ordenamientos endian darán resultados diferentes. Se realiza una copia del búfer de entrada al búfer de salida en las máquinas BE cuando los tipos son de diferentes tamaños para obtener los mismos resultados de fundición que en las máquinas LE.

Métodos públicos

Salida <U>
como salida ()
Devuelve el identificador simbólico de un tensor.
estático <U, T> Bitcast <U>
crear (alcance alcance , entrada Operando <T>, tipo Clase<U>)
Método de fábrica para crear una clase que envuelve una nueva operación de Bitcast.
Salida <U>

Métodos heredados

Métodos públicos

Salida pública <U> como Salida ()

Devuelve el identificador simbólico de un tensor.

Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.

Bitcast estático público <U> crear (alcance de alcance , entrada de operando <T>, tipo de clase<U>)

Método de fábrica para crear una clase que envuelve una nueva operación de Bitcast.

Parámetros
alcance alcance actual
Devoluciones
  • una nueva instancia de Bitcast

Salida pública <U> salida ()