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)
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)
Exemplo 2:
>>> tf.bitcast(tf.constant(0xffffffff, dtype=tf.uint32), tf.uint8)
<tf.Tensor: ... shape=(4,), dtype=uint8, numpy=array([255, 255, 255, 255], dtype=uint8)>
Exemplo 3:
>>> 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)

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:

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
)

::tensorflow::Node * node() const 

operador::tensorflow::Input

 operator::tensorflow::Input() const 

operador::tensorflow::Saída

 operator::tensorflow::Output() const