Сравните значения «input» и «threshold» и упакуйте полученные биты в «uint8».
Каждое сравнение возвращает логическое значение «истина» (если «входное_значение > пороговое значение») или «ложь» в противном случае.
Эта операция полезна для локально-чувствительного хеширования (LSH) и других алгоритмов, которые используют аппроксимации хеширования косинуса и расстояний `L2`; коды могут быть сгенерированы из ввода через:
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]
Учитывая входной сигнал в форме `[s0, s1, ..., s_n]`, выходной сигнал представляет собой тензор в форме `[s0, s1, ..., s_n / 8]` uint8`.
Константы
Нить | OP_NAME | Название этой операции, известное основному движку TensorFlow. |
Публичные методы
Выход <TUint8> | какВывод () Возвращает символический дескриптор тензора. |
статический <T расширяет TType > CompareAndBitpack | |
Выход <TUint8> | выход () Битовые сравнения. |
Унаследованные методы
Константы
общедоступная статическая финальная строка OP_NAME
Название этой операции, известное основному движку TensorFlow.
Публичные методы
общедоступный вывод <TUint8> asOutput ()
Возвращает символический дескриптор тензора.
Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.
public static CompareAndBitpack create (область действия , ввод операнда <T>, порог операнда <T>)
Фабричный метод для создания класса, обертывающего новую операцию CompareAndBitpack.
Параметры
объем | текущий объем |
---|---|
вход | Значения для сравнения с «порогом» и битовым пакетом. |
порог | Порог для сравнения. |
Возврат
- новый экземпляр CompareAndBitpack