tensorflow:: ops:: フィンガープリント

#include <array_ops.h>

指紋値を生成します。

まとめ

dataのフィンガープリント値を生成します。

フィンガープリント操作では、 dataの第一次元をバッチ次元とみなし、 output[i]には、すべてのiについてdata[i, ...]の内容から生成されたフィンガープリント値が含まれます。

指紋操作では、指紋値をバイト配列として書き込みます。例えば、デフォルトメソッドであるfarmhash64 、一度に64ビットの指紋値を生成します。この8バイトの値は、リトルエンディアン順でサイズ8のuint8配列として書き出されます。

例えば、 dataデータ型がDT_INT32で形状が (2, 3, 4) であり、フィンガープリント方式がfarmhash64であるとします。この場合、出力形状は (2, 8) になります。ここで、2 はdataのバッチ次元サイズ、8 は各フィンガープリント値のバイト単位のサイズです。 output[0, :]はdata[0, :, :]の 12 個の整数から生成され、同様にoutput[1, :]はdata[1, :, :]の残りの 12 個の整数から生成されます。

この演算は、基となる生のバッファをフィンガープリントするものであり、データ型や形状などのテンソルのメタデータをフィンガープリントするものではないことに注意してください。例えば、バッチ次元が同じである限り、フィンガープリントの値は形状変更やビットキャストに対して不変です。

Fingerprint(data) == Fingerprint(Reshape(data, ...))
Fingerprint(data) == Fingerprint(Bitcast(data, ...))

文字列データの場合、一般的にはFingerprint(data) != Fingerprint(ReduceJoin(data))となることが期待されます。

議論:

  • スコープ:スコープオブジェクト
  • データ:ランク1以上である必要があります。
  • メソッド: このオペレーターが使用するフィンガープリントメソッド。現在利用可能なメソッドはfarmhash::fingerprint64です。

返品:

  • Output : tf.uint8型の2次元Tensor 。1次元目はdataの最初の次元と同じで、2次元目のサイズはフィンガープリントアルゴリズムによって異なります。

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

Fingerprint (const :: tensorflow::Scope & scope, :: tensorflow::Input data, :: tensorflow::Input method)

公開属性

fingerprint
operation

公的機能

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

公開属性

指紋

::tensorflow::Output fingerprint

手術

Operation operation

公的機能

指紋

 Fingerprint(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input data,
  ::tensorflow::Input method
)

ノード

::tensorflow::Node * node() const 

operator::tensorflow::Input

 operator::tensorflow::Input() const 

operator::tensorflow::Output

 operator::tensorflow::Output() const