Bitcast

clase final pública Bitcast

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

Dado un tensor `input`, esta operación devuelve un tensor que tiene los mismos datos de búfer que `input` con el tipo de datos `type`.

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

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

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

Ejemplo 1:

>>> a = [1., 2., 3.] >>> equal_bitcast = tf.bitcast(a, tf.complex128) Rastreo (última llamada más reciente): ... InvalidArgumentError: No se puede bitcast del 1 al 18 [ Op:Bitcast] >>> equal_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.constante(0xffffffff, dtype=tf.uint32), tf.uint8)

Ejemplo 3:

>>> x = [1., 2., 3.] >>> y = [0., 2., 3.] >>> igualdad= tf.igual(x,y) >>> igualdad_cast = tf. cast(igualdad,tf.float32) >>> igualdad_bitcast = tf.bitcast(igualdad_cast,tf.uint8) >>> print(igualdad) tf.Tensor([False True True], shape=(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), dtipo=uint8)

NOTA : Bitcast se implementa como una conversión de bajo nivel, por lo que las máquinas con diferentes órdenes de 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 (ámbito de ámbito , 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.
Salida <U>
salida ()

Métodos Heredados

Métodos públicos

Salida pública <U> como salida ()

Devuelve el identificador simbólico de un tensor.

Las entradas de 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 (ámbito 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 ()