جریان تنسور:: عملیات:: CompareAndBitpack
#include <math_ops.h>
مقادیر input
را با threshold
مقایسه کنید و بیت های حاصل را در یک uint8
بسته بندی کنید.
خلاصه
هر مقایسه یک true
بولی (اگر input_value > threshold
) یا و در غیر این صورت false
برمی گرداند.
این عملیات برای Locality-Sensitive-Hashing (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]
نکته : در حال حاضر، داخلی ترین بعد تانسور باید بر 8 بخش پذیر باشد.
با توجه به input
به شکل [s0, s1, ..., s_n]
، خروجی یک تانسور uint8
به شکل [s0, s1, ..., s_n / 8]
است.
استدلال ها:
- scope: یک شی Scope
- ورودی: مقادیر قابل مقایسه در برابر
threshold
و بیت پک. - آستانه: آستانه مقایسه در برابر.
برمیگرداند:
-
Output
: مقایسه های بسته بندی شده بیتی.
سازندگان و ویرانگرها | |
---|---|
CompareAndBitpack (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input threshold) |
توابع عمومی | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
صفات عمومی
عملیات
Operation operation
خروجی
::tensorflow::Output output
توابع عمومی
CompareAndBitpack
CompareAndBitpack( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input threshold )
گره
::tensorflow::Node * node() const
عملگر::tensorflow::ورودی
operator::tensorflow::Input() const
عملگر::tensorflow::خروجی
operator::tensorflow::Output() const