tensorflow :: ops ::ビットキャスト

#include <array_ops.h>

データをコピーせずに、あるタイプから別のタイプにテンソルをビットキャストします。

概要

テンソルinput与えられると、この操作は、データtype inputと同じバッファーデータを持つテンソルを返します。

入力データ型Tが出力データ型typeよりも大きい場合、形状は[...]から[...、sizeof( T )/ sizeof( type )]に変わります。

Ttypeよりも小さい場合、演算子は右端の次元がsizeof( type )/ sizeof( T )に等しいことを要求します。次に、形状は[...、sizeof( type )/ sizeof( T )]から[...]になります。

tf.cast()が虚数部0を作成し、tf.bitcast()がモジュールを提供するため、実際のdtypeが複素数dtype(tf.complex64またはtf.complex128など)としてキャストされる場合、tf.bitcast()とtf.cast()の動作は異なります。エラー。例えば、

例1:

a = [1.、2.、3。] equality_bitcast = tf.bitcast(a、tf.complex128)トレースバック(最後の最後の呼び出し):... InvalidArgumentError:1から18までビットキャストできません[操作: ビットキャスト] 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)

例2:

tf.bitcast(tf.constant(0xffffffff、dtype = tf.uint32)、tf.uint8)

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

ビットキャストは低レベルのキャストとして実装されているため、エンディアンの順序が異なるマシンでは異なる結果が得られます。

引数:

戻り値:

  • Output :出力テンソル。

コンストラクタとデストラクタ

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

パブリック属性

operation
output

公の行事

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

パブリック属性

操作

Operation operation

出力

::tensorflow::Output output

公の行事

ビットキャスト

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

ノード

::tensorflow::Node * node() const 

operator :: tensorflow :: Input

 operator::tensorflow::Input() const 

operator :: tensorflow :: Output

 operator::tensorflow::Output() const