View source on GitHub
|
Generates fingerprint values.
tf.fingerprint(
data, method='farmhash64', name=None
)
Generates fingerprint values of data.
Fingerprint op considers the first dimension of data as the batch dimension,
and output[i] contains the fingerprint value generated from contents in
data[i, ...] for all i.
Fingerprint op writes fingerprint values as byte arrays. For example, the
default method farmhash64 generates a 64-bit fingerprint value at a time.
This 8-byte value is written out as an tf.uint8 array of size 8, in
little-endian order.
For example, suppose that data has data type tf.int32 and shape (2, 3, 4),
and that the fingerprint method is farmhash64. In this case, the output
shape is (2, 8), where 2 is the batch dimension size of data, and 8 is the
size of each fingerprint value in bytes. output[0, :] is generated from
12 integers in data[0, :, :] and similarly output[1, :] is generated from
other 12 integers in data[1, :, :].
Note that this op fingerprints the raw underlying buffer, and it does not fingerprint Tensor's metadata such as data type and/or shape. For example, the fingerprint values are invariant under reshapes and bitcasts as long as the batch dimension remain the same:
tf.fingerprint(data) == tf.fingerprint(tf.reshape(data, ...))
tf.fingerprint(data) == tf.fingerprint(tf.bitcast(data, ...))
For string data, one should expect tf.fingerprint(data) !=
tf.fingerprint(tf.string.reduce_join(data)) in general.
Args | |
|---|---|
data
|
A Tensor. Must have rank 1 or higher.
|
method
|
A Tensor of type tf.string. Fingerprint method used by this op.
Currently, available method is farmhash64.
|
name
|
A name for the operation (optional). |
Returns | |
|---|---|
A two-dimensional Tensor of type tf.uint8. The first dimension equals to
data's first dimension, and the second dimension size depends on the
fingerprint algorithm.
|
View source on GitHub