جریان تنسور:: عملیات:: 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)

صفات عمومی

operation
output

توابع عمومی

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