@Operator(group="strings") public final class ToHashBucketStrong extends PrimitiveOp implements Operand<Long>
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`.
operation
Modifier and Type | Method and Description |
---|---|
Output<Long> |
asOutput()
Returns the symbolic handle of a tensor.
|
static ToHashBucketStrong |
create(Scope scope,
Operand<String> input,
Long numBuckets,
List<Long> key)
Factory method to create a class wrapping a new ToHashBucketStrong operation.
|
Output<Long> |
output()
A Tensor of the same shape as the input `string_tensor`.
|
equals, hashCode, op, toString
public static ToHashBucketStrong create(Scope scope, Operand<String> input, Long numBuckets, List<Long> key)
scope
- current scopeinput
- The strings to assign a hash bucket.numBuckets
- The number of buckets.key
- The key used to seed the hash function, passed as a list of two uint64
elements.public Output<Long> asOutput()
Operand
Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is used to obtain a symbolic handle that represents the computation of the input.
asOutput
in interface Operand<Long>
OperationBuilder.addInput(Output)
Copyright © 2022. All rights reserved.