tensorflow:: عملیات:: دکوانتیزه کردن
#include <array_ops.h>تانسور «ورودی» را به یک تانسور اعشاری تبدیل کنید .
خلاصه
[min_range، max_range] اعشار اسکالر هستند که محدوده خروجی را مشخص میکنند. ویژگی 'mode' دقیقاً محاسباتی را که برای تبدیل مقادیر اعشاری به معادلهای کوانتیزه شده آنها استفاده میشود، کنترل میکند.
در حالت 'MIN_COMBINED'، هر مقدار از تانسور دستخوش تغییرات زیر خواهد شد:
if T == qint8: in[i] += (range(T) + 1)/ 2.0 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
range(T) = numeric_limits ::max() - numeric_limits ::min() مثال حالت MIN_COMBINED
اگر ورودی از نوع QuantizedRelu6 باشد، نوع خروجی quint8 (محدوده 0-255) است، اما محدوده ممکن QuantizedRelu6 ، 0-6 است. بنابراین مقادیر min_range و max_range برابر با 0.0 و 6.0 هستند. Dequantize روی quint8 هر مقدار را میگیرد، به عدد اعشاری تبدیل میکند و در 6 / 255 ضرب میکند. توجه داشته باشید که اگر quantizedtype برابر با qint8 باشد، عملیات قبل از تبدیل، هر مقدار را 128 واحد اضافه میکند.
اگر حالت 'MIN_FIRST' باشد، از این رویکرد استفاده میشود:
num_discrete_values = 1 << (# of bits in T) range_adjust = num_discrete_values / (num_discrete_values - 1) range = (range_max - range_min) * range_adjust range_scale = range / num_discrete_values const double offset_input = static_cast(input) - lowest_quantized; result = range_min + ((input - numeric_limits ::min()) * range_scale)
اگر حالت SCALED باشد، دکوانتیزاسیون با ضرب هر مقدار ورودی در یک scaling_factor انجام میشود. (بنابراین ورودی ۰ همیشه به ۰.۰ نگاشت میشود).
ضریب مقیاسبندی (scaling_factor) از min_range ، max_range و narrow_range به گونهای تعیین میشود که با QuantizeAndDequantize{V2|V3} و QuantizeV2 با استفاده از الگوریتم زیر سازگار باشد:
const int min_expected_T = std::numeric_limits::min() + (narrow_range ? 1 : 0); const int max_expected_T = std::numeric_limits ::max(); const float max_expected_T = std::numeric_limits ::max();
const float scale_factor = (std::numeric_limits::min() == 0) ? (max_range / max_expected_T) : std::max(min_range / min_expected_T, max_range / max_expected_T);
استدلالها:
- دامنه: یک شیء دامنه
- min_range: حداقل مقدار اسکالر که ممکن است برای ورودی تولید شود.
- max_range: حداکثر مقدار اسکالر ممکن برای ورودی تولید میشود.
بازده:
-
Output: تانسور خروجی.
سازندهها و مخربها | |
|---|---|
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range) | |
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range, const Dequantize::Attrs & attrs) |
ویژگیهای عمومی | |
|---|---|
operation | |
output | |
کارکردهای عمومی | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
توابع استاتیک عمومی | |
|---|---|
Axis (int64 x) | |
Mode (StringPiece x) | |
NarrowRange (bool x) | |
ساختارها | |
|---|---|
| tensorflow:: عملیات:: کمّیسازی:: جذابیتها | تنظیمکنندههای ویژگی اختیاری برای Dequantize . |
ویژگیهای عمومی
عملیات
Operation operation
خروجی
::tensorflow::Output output
کارکردهای عمومی
کوانتیزه کردن
Dequantize( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input min_range, ::tensorflow::Input max_range )
کوانتیزه کردن
Dequantize( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input min_range, ::tensorflow::Input max_range, const Dequantize::Attrs & attrs )
گره
::tensorflow::Node * node() const
عملگر::tensorflow::ورودی
operator::tensorflow::Input() const
عملگر::tensorflow::خروجی
operator::tensorflow::Output() const
توابع استاتیک عمومی
محور
Attrs Axis( int64 x )
حالت
Attrs Mode( StringPiece x )
محدوده باریک
Attrs NarrowRange( bool x )
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2026-11-05 بهوقت ساعت هماهنگ جهانی.