Stay organized with collections
Save and categorize content based on your preferences.
tensorflow::ops::CompareAndBitpack
#include <math_ops.h>
Compare values of input
to threshold
and pack resulting bits into a uint8
.
Summary
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]
.
Arguments:
- scope: A Scope object
- input: Values to compare against
threshold
and bitpack.
- threshold: Threshold to compare against.
Returns:
Output
: The bitpacked comparisons.
Public attributes
Public functions
node
::tensorflow::Node * node() const
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-04-20 UTC.
[null,null,["Last updated 2020-04-20 UTC."],[],[],null,["# tensorflow::ops::CompareAndBitpack Class Reference\n\ntensorflow::ops::CompareAndBitpack\n==================================\n\n`#include \u003cmath_ops.h\u003e`\n\nCompare values of `input` to `threshold` and pack resulting bits into a `uint8`.\n\nSummary\n-------\n\nEach comparison returns a boolean `true` (if `input_value \u003e threshold`) or and `false` otherwise.\n\nThis 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:\n\n\n```transact-sql\ncodebook_size = 50\ncodebook_bits = codebook_size * 32\ncodebook = tf.get_variable('codebook', [x.shape[-1].value, codebook_bits],\n dtype=x.dtype,\n initializer=tf.orthogonal_initializer())\ncodes = compare_and_threshold(tf.matmul(x, codebook), threshold=0.)\ncodes = tf.bitcast(codes, tf.int32) # go from uint8 to int32\n# now codes has shape x.shape[:-1] + [codebook_size]\n```\n\n\u003cbr /\u003e\n\n**NOTE**: Currently, the innermost dimension of the tensor must be divisible by 8.\n\nGiven an `input` shaped `[s0, s1, ..., s_n]`, the output is a `uint8` tensor shaped `[s0, s1, ..., s_n / 8]`.\n\nArguments:\n\n- scope: A [Scope](/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- input: Values to compare against `threshold` and bitpack.\n- threshold: Threshold to compare against.\n\n\u003cbr /\u003e\n\nReturns:\n\n- [Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output): The bitpacked comparisons.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [CompareAndBitpack](#classtensorflow_1_1ops_1_1_compare_and_bitpack_1aa00f05feb63c6001dbeb274f30d67977)`(const ::`[tensorflow::Scope](/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` threshold)` ||\n\n| ### Public attributes ||\n|-------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_compare_and_bitpack_1a844ac2bc7be66b00b7165a65b4fd7b5c) | [Operation](/versions/r1.15/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output](#classtensorflow_1_1ops_1_1_compare_and_bitpack_1a52739fa1033fe1e93ee013270d8adb3c) | `::`[tensorflow::Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\n| ### Public functions ||\n|-------------------------------------------------------------------------------------------------------------------------------|------------------------|\n| [node](#classtensorflow_1_1ops_1_1_compare_and_bitpack_1af6f8f9c40e4b60d75a6a6eb9d0c39ae8)`() const ` | `::tensorflow::Node *` |\n| [operator::tensorflow::Input](#classtensorflow_1_1ops_1_1_compare_and_bitpack_1a107c8a31460e12f5d2c4892c9e3c6c1e)`() const ` | ` ` ` ` |\n| [operator::tensorflow::Output](#classtensorflow_1_1ops_1_1_compare_and_bitpack_1ade9a5b902ca0f3af8969b0157da966de)`() const ` | ` ` ` ` |\n\nPublic attributes\n-----------------\n\n### operation\n\n```text\nOperation operation\n``` \n\n### output\n\n```text\n::tensorflow::Output output\n``` \n\nPublic functions\n----------------\n\n### CompareAndBitpack\n\n```gdscript\n CompareAndBitpack(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input input,\n ::tensorflow::Input threshold\n)\n``` \n\n### node\n\n```gdscript\n::tensorflow::Node * node() const \n``` \n\n### operator::tensorflow::Input\n\n```gdscript\n operator::tensorflow::Input() const \n``` \n\n### operator::tensorflow::Output\n\n```gdscript\n operator::tensorflow::Output() const \n```"]]