Bitcast

classe finale pubblica Bitcast

Bitcast un tensore da un tipo a un altro senza copiare i dati.

Dato un tensore "input", questa operazione restituisce un tensore che ha gli stessi dati buffer di "input" con tipo di dati "type".

Se il tipo di dati di input "T" è maggiore del tipo di dati di output "type", la forma cambia da [...] a [..., sizeof(`T`)/sizeof(`type`)].

Se "T" è inferiore a "tipo", l'operatore richiede che la dimensione più a destra sia uguale a sizeof(`type`)/sizeof(`T`). La forma va quindi da [..., sizeof(`type`)/sizeof(`T`)] a [...].

tf.bitcast() e tf.cast() funzionano in modo diverso quando il dtype reale viene castato come un dtype complesso (ad esempio tf.complex64 o tf.complex128) poiché tf.cast() crea la parte immaginaria 0 mentre tf.bitcast() fornisce il modulo errore. Per esempio,

Esempio 1:

>>> a = [1., 2., 3.] >>> equality_bitcast = tf.bitcast(a, tf.complex128) Traceback (ultima chiamata più recente): ... InvalidArgumentError: Impossibile bitcast da 1 a 18 [ Op:Bitcast] >>> equality_cast = tf.cast(a, tf.complex128) >>> print(equality_cast) tf.Tensor([1.+0.j 2.+0.j 3.+0.j] , forma=(3,), dtipo=complesso128)

Esempio 2:

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

Esempio 3:

>>> x = [1., 2., 3.] >>> y = [0., 2., 3.] >>> uguaglianza= tf.equal(x,y) >>> uguaglianza_cast = tf. cast(equality,tf.float32) >>> equality_bitcast = tf.bitcast(equality_cast,tf.uint8) >>> print(equality) 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 : Bitcast è implementato come cast di basso livello, quindi macchine con ordinamenti endian diversi forniranno risultati diversi.

Metodi pubblici

Uscita <U>
comeuscita ()
Restituisce la maniglia simbolica di un tensore.
statico <U, T> Bitcast <U>
create ( ambito ambito , input operando <T>, tipo Classe <U>)
Metodo factory per creare una classe che racchiude una nuova operazione Bitcast.
Uscita <U>

Metodi ereditati

Metodi pubblici

Uscita pubblica <U> asOutput ()

Restituisce la maniglia simbolica di un tensore.

Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.

creazione bitcast <U> statico pubblico (ambito ambito , input operando <T>, tipo classe <U>)

Metodo factory per creare una classe che racchiude una nuova operazione Bitcast.

Parametri
scopo ambito attuale
ritorna
  • una nuova istanza di Bitcast

Uscita pubblica <U> uscita ()