tensorflow :: operaciones :: CompareAndBitpack
#include <math_ops.h>
Compare los valores de input
con el threshold
y empaquete los bits resultantes en un uint8
.
Resumen
Cada comparación devuelve un valor booleano true
(si input_value > threshold
) o false
caso contrario.
Esta operación es útil para Locality-Sensitive-Hashing (LSH) y otros algoritmos que utilizan aproximaciones hash de coseno y distancias L2
; los códigos se pueden generar a partir de una entrada a través de:
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]
NOTA : Actualmente, la dimensión más interna del tensor debe ser divisible por 8.
Dada una input
forma de [s0, s1, ..., s_n]
, la salida es un tensor uint8
forma de [s0, s1, ..., s_n / 8]
.
Argumentos:
- alcance: un objeto de alcance
- entrada: valores para comparar con el
threshold
y el paquete de bits. - umbral: umbral con el que comparar.
Devoluciones:
-
Output
: las comparaciones en paquete de bits.
Constructores y Destructores | |
---|---|
CompareAndBitpack (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input threshold) |
Atributos públicos | |
---|---|
operation | |
output |
Funciones publicas | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Atributos públicos
operación
Operation operation
producción
::tensorflow::Output output
Funciones publicas
CompareAndBitpack
CompareAndBitpack( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input threshold )
nodo
::tensorflow::Node * node() const
operador :: tensorflow :: Entrada
operator::tensorflow::Input() const
operador :: tensorflow :: Salida
operator::tensorflow::Output() const