قارن قيم "الإدخال" بـ "العتبة" واجمع البتات الناتجة في "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]
ملاحظة : في الوقت الحالي، يجب أن يكون البعد الأعمق للموتر قابلاً للقسمة على 8.بالنظر إلى شكل "الإدخال" `[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