tf.raw_ops.CompareAndBitpack
Compare values of input to threshold and pack resulting bits into a uint8.
tf.raw_ops.CompareAndBitpack(
    input, threshold, name=None
)
  Each comparison returns a boolean true (if input_value > threshold) or and false otherwise.
This operation is useful for Locality-Sensitive-Hashing (LSH) and other algorithms that use hashing approximations of cosine and L2 distances; codes can be generated from an input via:
codebook_size = 50
codebook_bits = codebook_size * 32
codebook = tf.get_variable('codebook', [x.shape[-1].value, codebook_bits],
                           dtype=x.dtype,
                           initializer=tf.orthogonal_initializer())
codes = compare_and_threshold(tf.matmul(x, codebook), threshold=0.)
codes = tf.bitcast(codes, tf.int32)  # go from uint8 to int32
# now codes has shape x.shape[:-1] + [codebook_size]
Note: Currently, the innermost dimension of the tensor must be divisible by 8.
Given an input shaped [s0, s1, ..., s_n], the output is a uint8 tensor shaped [s0, s1, ..., s_n / 8].
| Args | |
|---|---|
| input | A Tensor. Must be one of the following types:bool,half,float32,float64,int8,int16,int32,int64. Values to compare againstthresholdand bitpack. | 
| threshold | A Tensor. Must have the same type asinput. Threshold to compare against. | 
| name | A name for the operation (optional). | 
| Returns | |
|---|---|
| A Tensorof typeuint8. | 
    © 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
    https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/raw_ops/CompareAndBitpack