قارن قيم "الإدخال" بـ "العتبة" واجمع البتات الناتجة في "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]`، يكون الإخراج على شكل موتر `uint8` `[s0, s1, ..., s_n / 8]`.
الثوابت
خيط | OP_NAME | اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي |
الأساليب العامة
الإخراج <TUint8> | كإخراج () إرجاع المقبض الرمزي للموتر. |
ثابت <T يمتد TType > CompareAndBitpack | |
الإخراج <TUint8> | الإخراج () المقارنات المعبأة. |
الطرق الموروثة
الثوابت
السلسلة النهائية الثابتة العامة OP_NAME
اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي
الأساليب العامة
الإخراج العام <TUint8> asOutput ()
إرجاع المقبض الرمزي للموتر.
المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.
إنشاء CompareAndBitpack ثابت عام (نطاق النطاق ، وإدخال المعامل <T>، وعتبة المعامل <T>)
طريقة المصنع لإنشاء فئة تغلف عملية CompareAndBitpack جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
مدخل | القيم المطلوب مقارنتها بـ "العتبة" وbitpack. |
عتبة | عتبة للمقارنة ضد. |
المرتجعات
- مثيل جديد لـ CompareAndBitpack