Bitcast

aula final pública Bitcast

Bitcasta um tensor de um tipo para outro sem copiar dados.

Dado um tensor `input`, esta operação retorna um tensor que possui os mesmos dados de buffer que `input` com tipo de dados `type`.

Se o tipo de dados de entrada `T` for maior que o tipo de dados de saída `type` então a forma muda de [...] para [..., sizeof(`T`)/sizeof(`type`)].

Se `T` for menor que `type`, o operador requer que a dimensão mais à direita seja igual a sizeof(`type`)/sizeof(`T`). A forma então vai de [..., sizeof(`type`)/sizeof(`T`)] para [...].

tf.bitcast() e tf.cast() funcionam de maneira diferente quando o dtype real é convertido como um dtype complexo (por exemplo, tf.complex64 ou tf.complex128), pois tf.cast() cria a parte imaginária 0 enquanto tf.bitcast() fornece o módulo erro. Por exemplo,

Exemplo 1:

>>> a = [1., 2., 3.] >>> equality_bitcast = tf.bitcast(a, tf.complex128) Traceback (última chamada mais recente): ... InvalidArgumentError: Não é possível transmitir bit de 1 a 18 [ Op:Bitcast] >>> igualdade_cast = tf.cast(a, tf.complex128) >>> print(equality_cast) tf.Tensor([1.+0.j 2.+0.j 3.+0.j] , forma=(3,), dtype=complex128)

Exemplo 2:

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

Exemplo 3:

>>> x = [1., 2., 3.] >>> y = [0., 2., 3.] >>> igualdade= tf.equal(x,y) >>> igualdade_cast = tf. cast(igualdade,tf.float32) >>> igualdade_bitcast = tf.bitcast(equalidade_cast,tf.uint8) >>> print(igualdade) tf.Tensor([False True True], shape=(3,), dtype=bool ) >>> print(equality_cast) tf.Tensor([0. 1. 1.], shape=(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 : O Bitcast é implementado como uma conversão de baixo nível, portanto, máquinas com ordenações endian diferentes darão resultados diferentes. Uma cópia do buffer de entrada para o buffer de saída é feita em máquinas BE quando os tipos são de tamanhos diferentes para obter os mesmos resultados de conversão que nas máquinas LE.

Métodos Públicos

Saída <U>
asOutput ()
Retorna o identificador simbólico de um tensor.
estático <U, T> Bitcast <U>
create (escopo do escopo , entrada Operando <T>, tipo Classe<U>)
Método de fábrica para criar uma classe que envolve uma nova operação Bitcast.
Saída <U>
saída ()

Métodos herdados

Métodos Públicos

Saída pública <U> asOutput ()

Retorna o identificador simbólico de um tensor.

As entradas para operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.

public static Bitcast <U> create (escopo do escopo , entrada do operando <T>, tipo Class<U>)

Método de fábrica para criar uma classe que envolve uma nova operação Bitcast.

Parâmetros
escopo escopo atual
Devoluções
  • uma nova instância do Bitcast

Saída pública <U> saída ()