przepływ tensorowy:: ops:: PorównajAndBitpack
#include <math_ops.h>
Porównaj wartości input
z threshold
i spakuj wynikowe bity do uint8
.
Streszczenie
Każde porównanie zwraca wartość logiczną true
(jeśli input_value > threshold
) lub false
w przeciwnym razie.
Ta operacja jest przydatna w przypadku hashowania uwzględniającego lokalizację (LSH) i innych algorytmów, które wykorzystują przybliżenia mieszające odległości cosinus i L2
; kody można wygenerować z danych wejściowych poprzez:
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]
UWAGA : Obecnie najbardziej wewnętrzny wymiar tensora musi być podzielny przez 8.
Biorąc pod uwagę dane input
w kształcie [s0, s1, ..., s_n]
, wyjściem jest tensor uint8
w kształcie [s0, s1, ..., s_n / 8]
.
Argumenty:
- zakres: Obiekt Scope
- wejście: Wartości do porównania z
threshold
i pakietem bitów. - próg: próg do porównania.
Zwroty:
-
Output
: Porównania spakowane w bity.
Konstruktory i destruktory | |
---|---|
CompareAndBitpack (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input threshold) |
Atrybuty publiczne | |
---|---|
operation | |
output |
Funkcje publiczne | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Atrybuty publiczne
działanie
Operation operation
wyjście
::tensorflow::Output output
Funkcje publiczne
PorównajAndBitpack
CompareAndBitpack( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input threshold )
węzeł
::tensorflow::Node * node() const
operator::tensorflow::Wejście
operator::tensorflow::Input() const
operator::tensorflow::Wyjście
operator::tensorflow::Output() const