# tensorflow::ops::Fingerprint Class Reference

# tensorflow::ops::Fingerprint

`#include <array_ops.h>`

Generates fingerprint values.

## Summary

Generates fingerprint values of `data`.

[Fingerprint](https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_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](https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_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](https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/tensor#classtensorflow_1_1_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, ...))
```

<br />

For string data, one should expect `Fingerprint(data) != Fingerprint(ReduceJoin(data))` in general.

Args:

- scope: A [Scope](https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object
- data: Must have rank 1 or higher.
- method: [Fingerprint](https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_fingerprint) method used by this op. Currently available method is `farmhash::fingerprint64`.

<br />

Returns:

- `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output`: A two-dimensional `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/tensor#classtensorflow_1_1_tensor` of type `tf.uint8`. The first dimension equals to `data`'s first dimension, and the second dimension size depends on the fingerprint algorithm.

<br />

| ### Constructors and Destructors ||
|---|---|
| `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_fingerprint_1a5a9ba3aaf3975b520b93b93f97d3218e(const ::https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input data, ::https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input method)` ||

| ### Public attributes ||
|---|---|
| `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_fingerprint_1acb15a2bc227362487ec02887bd37371b` | `::https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` |
| `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_fingerprint_1a28c7645b277237010a0c6e2b37c9e520` | `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation` |

| ### Public functions ||
|---|---|
| `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_fingerprint_1a6605930068854f0e7e5ba0ad2ce90daa() const ` | `::tensorflow::Node *` |
| `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_fingerprint_1af0b4d90e2ccbff5efb796771a356e94d() const ` |   |
| `https://www.tensorflow.org/versions/r2.7/api_docs/cc/class/tensorflow/ops/fingerprint#classtensorflow_1_1ops_1_1_fingerprint_1a1d72f0d143362ae62b95dfdadd166164() const ` |   |

## Public attributes

### fingerprint

```
::tensorflow::Output fingerprint
```

### operation

```
Operation operation
```

## Public functions

### Fingerprint

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

### node

```
::tensorflow::Node * node() const 
```

### operator::tensorflow::Input

```
 operator::tensorflow::Input() const 
```

### operator::tensorflow::Output

```
 operator::tensorflow::Output() const 
```