tensorflow::ops::Bitcast
#include <array_ops.h>Converte um tensor de um tipo para outro usando bits, sem copiar os dados.
Resumo
Dado um tensor input , esta operação retorna um tensor que possui os mesmos dados de buffer que input , com type de dados type.
Se o tipo de dados de entrada T for maior que o type de dados de saída type, então o formato 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 passa de [..., sizeof( type )/sizeof( T )] para [...].
As funções `tf.bitcast()` e `tf.cast()` funcionam de maneira diferente quando um tipo de dado real é convertido para um tipo de dado complexo (por exemplo, `tf.complex64` ou `tf.complex128`), pois `tf.cast()` retorna a parte imaginária como 0, enquanto `tf.bitcast()` gera um erro de módulo. 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)
>>> 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)
NOTA : O Bitcast é implementado como uma conversão de baixo nível, portanto, máquinas com diferentes ordens de endianness apresentarão resultados diferentes.
Argumentos:
- escopo: Um objeto de escopo
Devoluções:
-
Output: O tensor de saída.
Construtores e Destrutores | |
|---|---|
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