flux tensoriel : : opérations : : ComparerEtBitpack
#include <math_ops.h>
Comparez les valeurs de input
au threshold
et regroupez les bits résultants dans un uint8
.
Résumé
Chaque comparaison renvoie un booléen true
(si input_value > threshold
) ou false
sinon.
Cette opération est utile pour le Locality-Sensitive-Hashing (LSH) et d'autres algorithmes qui utilisent des approximations de hachage des distances cosinus et L2
; les codes peuvent être générés à partir d'une entrée 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]
REMARQUE : Actuellement, la dimension la plus interne du tenseur doit être divisible par 8.
Étant donné une input
en forme de [s0, s1, ..., s_n]
, la sortie est un tenseur uint8
en forme de [s0, s1, ..., s_n / 8]
.
Arguments :
- scope : un objet Scope
- entrée : valeurs à comparer au
threshold
et au bitpack. - seuil : seuil à comparer.
Retours :
-
Output
: Les comparaisons bitpackées.
Constructeurs et Destructeurs | |
---|---|
CompareAndBitpack (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input threshold) |
Attributs publics | |
---|---|
operation | |
output |
Fonctions publiques | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Attributs publics
opération
Operation operation
sortir
::tensorflow::Output output
Fonctions publiques
ComparerEtBitpack
CompareAndBitpack( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input threshold )
nœud
::tensorflow::Node * node() const
opérateur :: tensorflow :: Entrée
operator::tensorflow::Input() const
opérateur :: tensorflow :: Sortie
operator::tensorflow::Output() const