tensorflow:: ops:: Bitcast
#include <array_ops.h>Przekazuje tensor z jednego typu do innego bez kopiowania danych.
Streszczenie
Biorąc pod uwagę tensor input , ta operacja zwraca tensor, który ma takie same dane buforowe jak input i type danych type .
Jeżeli typ danych wejściowych T jest większy od type danych wyjściowych, wówczas kształt zmienia się z [...] na [..., sizeof( T )/sizeof( type )].
Jeśli T jest mniejsze niż type , operator wymaga, aby skrajny prawy wymiar był równy sizeof( type )/sizeof( T ). Kształt zmienia się wówczas z [..., sizeof( type )/sizeof( T )] na [...].
Funkcje tf.bitcast() i tf.cast() działają inaczej, gdy rzeczywisty typ danych jest rzutowany na zespolony typ danych (np. tf.complex64 lub tf.complex128), ponieważ tf.cast() powoduje, że część urojona jest równa 0, podczas gdy tf.bitcast() zwraca błąd modułu. Na przykład:
Przykład 1:
a = [1., 2., 3.]quality_bitcast = tf.bitcast(a, tf.complex128) Traceback (ostatnie wywołanie na końcu): ... InvalidArgumentError: Nie można wykonać transmisji bitowej z 1 do 18 [Op: Bitcast ]quality_cast = tf.cast(a, tf.complex128) print(equality_cast) tf.Tensor([1.+0.j 2.+0.j 3.+0.j], shape=(3,), dtype=complex128)
Przykład 2:
tf.bitcast(tf.constant(0xffffffff, typ danych=tf.uint32), tf.uint8)
Przykład 3:
x = [1., 2., 3.] y = [0., 2., 3.] równość = tf.equal(x,y) równość_cast = tf.cast(równość, tf.float32) równość_bitcast = tf.bitcast(równość_cast, tf.uint8) drukuj(równość) tf.Tensor([Fałsz Prawda Prawda], kształt=(3,), typ danych=bool) drukuj(równość_cast) tf.Tensor([0. 1. 1.], kształt=(3,), typ danych=float32) drukuj(równość_bitcast) tf.Tensor( [[ 0 0 0 0] [ 0 0 128 63] [ 0 0 128 63]], kształt=(3, 4), typ danych=uint8)
UWAGA : Protokół Bitcast jest implementowany jako rzutowanie niskiego poziomu, więc maszyny z różną kolejnością bajtów endianowych dadzą różne wyniki.
Argumenty:
- zakres: obiekt zakresu
Zwroty:
-
Output: Tensor wyjściowy.
Konstruktory i destruktory | |
|---|---|
Bitcast (const :: tensorflow::Scope & scope, :: tensorflow::Input input, DataType type) |
Atrybuty publiczne | |
|---|---|
operation | |
output | |
Funkcje publiczne | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
Atrybuty publiczne
działanie
Operation operation
wyjście
::tensorflow::Output output
Funkcje publiczne
Bitcast
Bitcast( const ::tensorflow::Scope & scope, ::tensorflow::Input input, DataType type )
węzeł
::tensorflow::Node * node() const
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const