# tensorflow::ops::StringToHashBucketStrong

`#include <string_ops.h>`

Converts each string in the input [Tensor](https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/tensor#classtensorflow_1_1_tensor) to its hash mod by a number of buckets.

## Summary

The hash function is deterministic on the content of the string within the process. The hash function is a keyed hash function, where attribute `key` defines the key of the hash function. `key` is an array of 2 elements.

A strong hash is important when inputs may be malicious, e.g. URLs with additional components. Adversaries could try to make their inputs hash to the same bucket for a denial-of-service attack or to skew the results. A strong hash can be used to make it difficult to find inputs with a skewed hash value distribution over buckets. This requires that the hash function is seeded by a high-entropy (random) "key" unknown to the adversary.

The additional robustness comes at a cost of roughly 4x higher compute time than `tf.string_to_hash_bucket_fast`.

Arguments:

- scope: A [Scope](https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object
- input: The strings to assign a hash bucket.
- num_buckets: The number of buckets.
- key: The key used to seed the hash function, passed as a list of two uint64 elements.

<br />

Returns:

- `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output`: A [Tensor](https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/tensor#classtensorflow_1_1_tensor) of the same shape as the input `string_tensor`.

<br />

| ### Constructors and Destructors ||
|---|---|
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/string-to-hash-bucket-strong#classtensorflow_1_1ops_1_1_string_to_hash_bucket_strong_1ac875272a421c27022485c1d156921526(const ::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input input, int64 num_buckets, const gtl::ArraySlice< int > & key)` ||

| ### Public attributes ||
|---|---|
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/string-to-hash-bucket-strong#classtensorflow_1_1ops_1_1_string_to_hash_bucket_strong_1a6ef732f172d70e59235f3e6ede12b13a` | `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation` |
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/string-to-hash-bucket-strong#classtensorflow_1_1ops_1_1_string_to_hash_bucket_strong_1a2b2f736fdbc1add249f1a4dfd72ab6dd` | `::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` |

| ### Public functions ||
|---|---|
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/string-to-hash-bucket-strong#classtensorflow_1_1ops_1_1_string_to_hash_bucket_strong_1a2f2541ad755307573080aaaba9d46e52() const ` | `::tensorflow::Node *` |
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/string-to-hash-bucket-strong#classtensorflow_1_1ops_1_1_string_to_hash_bucket_strong_1adf2f87bf8defcccf0aa91ddf87b3a2e5() const ` | ` `` ` |
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/string-to-hash-bucket-strong#classtensorflow_1_1ops_1_1_string_to_hash_bucket_strong_1a5549b421caa8118777e62a2538e604f9() const ` | ` `` ` |

## Public attributes

### operation

```
Operation operation
```

### output

```
::tensorflow::Output output
```

## Public functions

### StringToHashBucketStrong

```
 StringToHashBucketStrong(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  int64 num_buckets,
  const gtl::ArraySlice< int > & key
)
```

### node

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

### operator::tensorflow::Input

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

### operator::tensorflow::Output

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