@Namespace(value="tensorflow::ops") @NoOffset @Properties(inherit=tensorflow.class) public class CompareAndBitpack extends Pointer
input
to threshold
and pack resulting bits into a uint8
.
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:
python
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]
.
Arguments:
* scope: A Scope object
* input: Values to compare against threshold
and bitpack.
* threshold: Threshold to compare against.
Returns:
* Output
: The bitpacked comparisons.Pointer.CustomDeallocator, Pointer.Deallocator, Pointer.NativeDeallocator, Pointer.ReferenceCounter
Constructor and Description |
---|
CompareAndBitpack(Pointer p)
Pointer cast constructor.
|
CompareAndBitpack(Scope scope,
Input input,
Input threshold) |
Modifier and Type | Method and Description |
---|---|
Input |
asInput() |
Output |
asOutput() |
Node |
node() |
Operation |
operation() |
CompareAndBitpack |
operation(Operation setter) |
Output |
output() |
CompareAndBitpack |
output(Output setter) |
address, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, getDirectBufferAddress, getPointer, getPointer, getPointer, getPointer, hashCode, interruptDeallocatorThread, isNull, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetAddress, offsetof, offsetof, parseBytes, physicalBytes, physicalBytesInaccurate, position, position, put, realloc, referenceCount, releaseReference, retainReference, setNull, sizeof, sizeof, toString, totalBytes, totalCount, totalPhysicalBytes, withDeallocator, zero
public CompareAndBitpack(Pointer p)
Pointer(Pointer)
.public Node node()
public CompareAndBitpack operation(Operation setter)
public CompareAndBitpack output(Output setter)
Copyright © 2022. All rights reserved.