Generates fingerprint values.
tf.raw_ops.Fingerprint(
data, method, 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 uint8
array of size 8, in little-endian
order.
For example, suppose that data
has data type DT_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:
Fingerprint(data) == Fingerprint(Reshape(data, ...))
Fingerprint(data) == Fingerprint(Bitcast(data, ...))
For string data, one should expect Fingerprint(data) !=
Fingerprint(ReduceJoin(data))
in general.
Returns | |
---|---|
A Tensor of type uint8 .
|