مقادیر «ورودی» را با «آستانه» مقایسه کنید و بیت های حاصل را در «uint8» بسته بندی کنید.
هر مقایسه یک «true» بولی (اگر «input_value > آستانه») یا و «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]
با توجه به «ورودی» به شکل «[s0، s1، ...، s_n]»، خروجی یک تانسور «uint8» به شکل «[s0، s1، ...، s_n / 8]» است.
ثابت ها
رشته | OP_NAME | نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود |
روش های عمومی
خروجی < TUint8 > | asOutput () دسته نمادین تانسور را برمی گرداند. |
static <T TType > CompareAndBitpack را گسترش می دهد | |
خروجی < TUint8 > | خروجی () مقایسه های بیت پک شده |
روش های ارثی
ثابت ها
رشته نهایی ثابت عمومی OP_NAME
نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود
روش های عمومی
خروجی عمومی < TUint8 > asOutput ()
دسته نمادین تانسور را برمی گرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
ایجاد استاتیک عمومی CompareAndBitpack ( دامنه دامنه ، ورودی عملوند <T>، آستانه عملوند <T>)
روش کارخانه برای ایجاد کلاسی که یک عملیات CompareAndBitpack جدید را بسته بندی می کند.
پارامترها
دامنه | محدوده فعلی |
---|---|
ورودی | مقادیر قابل مقایسه در برابر «آستانه» و بیت پک. |
آستانه | آستانه مقایسه با |
برمی گرداند
- یک نمونه جدید از CompareAndBitpack