fluxo tensor:: ops:: Bitcast
#include <array_ops.h>
Bitcasta um tensor de um tipo para outro sem copiar dados.
Resumo
Dada uma input
de tensor, esta operação retorna um tensor que possui os mesmos dados de buffer que input
com type
.
Se o tipo de dados de entrada T
for maior que o type
de tipo de dados de saída, a forma muda de [...] para [..., sizeof( T
)/sizeof( type
)].
Se T
for menor que type
, o operador exige 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 ] 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)
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(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)
NOTA : O Bitcast é implementado como uma conversão de baixo nível, portanto, máquinas com ordenações endian diferentes darão resultados diferentes.
Argumentos:
- escopo: um objeto Escopo
Retorna:
-
Output
: o tensor de saída.
Construtores e Destruidores | |
---|---|
Bitcast (const :: tensorflow::Scope & scope, :: tensorflow::Input input, DataType type) |
Atributos públicos | |
---|---|
operation | |
output |
Funções públicas | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Atributos públicos
operação
Operation operation
saída
::tensorflow::Output output
Funções públicas
Bitcast
Bitcast( const ::tensorflow::Scope & scope, ::tensorflow::Input input, DataType type )
nó
::tensorflow::Node * node() const
operador::tensorflow::Input
operator::tensorflow::Input() const
operador::tensorflow::Saída
operator::tensorflow::Output() const