aliran tensor:: operasi:: bitcast

#include <array_ops.h>

Mem-bitcast tensor dari satu jenis ke jenis lainnya tanpa menyalin data.

Ringkasan

Dengan adanya input tensor, operasi ini mengembalikan tensor yang memiliki data buffer yang sama dengan input dengan type tipe data.

Jika tipe data masukan T lebih besar dari type data keluaran maka bentuknya berubah dari [...] menjadi [..., sizeof( T )/sizeof( type )].

Jika T lebih kecil dari type , operator mengharuskan dimensi paling kanan sama dengan sizeof( type )/sizeof( T ). Bentuknya kemudian berubah dari [..., sizeof( type )/sizeof( T )] menjadi [...].

tf.bitcast() dan tf.cast() bekerja secara berbeda ketika dtype nyata dicor sebagai dtype kompleks (misalnya tf.complex64 atau tf.complex128) karena tf.cast() membuat bagian imajiner 0 sementara tf.bitcast() memberikan modul kesalahan. Misalnya,

Contoh 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)
Contoh 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)>
Contoh 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)

CATATAN : Bitcast diimplementasikan sebagai cast tingkat rendah, sehingga mesin dengan urutan endian berbeda akan memberikan hasil yang berbeda.

Argumen:

Pengembalian:

Konstruktor dan Destruktor

Bitcast (const :: tensorflow::Scope & scope, :: tensorflow::Input input, DataType type)

Atribut publik

operation
output

Fungsi publik

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Atribut publik

operasi

Operation operation

keluaran

::tensorflow::Output output

Fungsi publik

bitcast

 Bitcast(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  DataType type
)

simpul

::tensorflow::Node * node() const 

operator::tensorflow::Masukan

 operator::tensorflow::Input() const 

operator::tensorflow::Keluaran

 operator::tensorflow::Output() const