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.] >>> equality_bitcast = tf.bitcast(a,tf.complex128) tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot bitcast from float to complex128: shape [3] [Op:Bitcast] >>> equality_cast = tf.cast(a,tf.complex128) >>> print(equality_cast) tf.Tensor([1.+0.j 2.+0.j 3.+0.j], shape=(3,), dtype=complex128)
>>> tf.bitcast(tf.constant(0xffffffff, dtype=tf.uint32), tf.uint8) <tf.Tensor: ... shape=(4,), dtype=uint8, numpy=array([255, 255, 255, 255], dtype=uint8)>
>>> x = [1., 2., 3.] >>> y = [0., 2., 3.] >>> equality= tf.equal(x,y) >>> equality_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]], shape=(3, 4), dtype=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