Bitcast

classe finale publique Bitcast

Bitcaste un tenseur d'un type à un autre sans copier les données.

Étant donné un tenseur « input », cette opération renvoie un tenseur qui a les mêmes données de tampon que « input » avec le type de données « type ».

Si le type de données d'entrée `T` est plus grand que le type de données de sortie `type` alors la forme passe de [...] à [..., sizeof(`T`)/sizeof(`type`)].

Si `T` est plus petit que `type`, l'opérateur exige que la dimension la plus à droite soit égale à sizeof(`type`)/sizeof(`T`). La forme passe alors de [..., sizeof(`type`)/sizeof(`T`)] à [...].

tf.bitcast() et tf.cast() fonctionnent différemment lorsque le type réel est converti en type complexe (par exemple tf.complex64 ou tf.complex128) car tf.cast() crée une partie imaginaire 0 tandis que tf.bitcast() donne le module erreur. Par exemple,

Exemple 1:

>>> a = [1., 2., 3.] >>> Equality_bitcast = tf.bitcast(a, tf.complex128) Traceback (dernier appel le plus récent) : ... InvalidArgumentError : Impossible de diffuser du bit de 1 à 18 [ Op:Bitcast] >>> Equality_cast = tf.cast(a, tf.complex128) >>> print(equality_cast) tf.Tensor([1.+0.j 2.+0.j 3.+0.j] , forme=(3,), dtype=complexe128)

Exemple 2 :

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

Exemple 3 :

>>> x = [1., 2., 3.] >>> y = [0., 2., 3.] >>> égalité= tf.equal(x,y) >>> égalité_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]], forme=(3, 4), dtype=uint8)

REMARQUE : Bitcast est implémenté comme une distribution de bas niveau, donc les machines avec des ordres endian différents donneront des résultats différents. Une copie du tampon d'entrée vers le tampon de sortie est effectuée sur les machines BE lorsque les types sont de tailles différentes afin d'obtenir les mêmes résultats de casting que sur les machines LE.

Méthodes publiques

Sortie <U>
comme Sortie ()
Renvoie le handle symbolique d'un tenseur.
statique <U, T> Bitcast <U>
créer (portée de portée , entrée opérande <T>, type Class<U>)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération Bitcast.
Sortie <U>
sortir ()

Méthodes héritées

Méthodes publiques

sortie publique <U> asOutput ()

Renvoie le handle symbolique d'un tenseur.

Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.

public static Bitcast <U> créer (portée de portée , entrée d'opérande <T>, type de classe <U>)

Méthode d'usine pour créer une classe encapsulant une nouvelle opération Bitcast.

Paramètres
portée portée actuelle
Retour
  • une nouvelle instance de Bitcast

Sortie publique Sortie <U> ()