'ইনপুট' টেনসরকে একটি ফ্লোট বা bfloat16 টেনসরে ডিকুয়ান্টাইজ করুন।
[min_range, max_range] হল স্কেলার ফ্লোট যা আউটপুটের জন্য পরিসীমা নির্দিষ্ট করে। 'মোড' অ্যাট্রিবিউট নিয়ন্ত্রণ করে ঠিক কোন গণনাগুলিকে ফ্লোট মানগুলিকে তাদের কোয়ান্টাইজড সমতুল্যগুলিতে রূপান্তর করতে ব্যবহৃত হয়৷
'MIN_COMBINED' মোডে, টেনসরের প্রতিটি মান নিম্নলিখিতগুলির মধ্য দিয়ে যাবে:
if T == qint8: in[i] += (range(T) + 1)/ 2.0
out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
MIN_COMBINED মোডের উদাহরণ
যদি ইনপুটটি QuantizedRelu6 থেকে আসে, তাহলে আউটপুটের ধরনটি quint8 (0-255 এর পরিসর) কিন্তু QuantizedRelu6 এর সম্ভাব্য পরিসর হল 0-6। min_range এবং max_range মান তাই 0.0 এবং 6.0। quint8-এ ডিকুয়ান্টাইজ প্রতিটি মান নেবে, ভাসতে কাস্ট করবে এবং 6/255 দ্বারা গুন করবে। মনে রাখবেন যে কোয়ান্টাইজড টাইপ যদি 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<double>(input) - lowest_quantized;
result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
স্কেলিং_ফ্যাক্টর নির্ধারণ করা হয় `মিনিট_রেঞ্জ`, `সর্বোচ্চ_পরিসীমা` এবং `সংকীর্ণ_রেঞ্জ` থেকে এমনভাবে যা `QuantizeAndDequantize{V2|V3}` এবং `QuantizeV2` এর সাথে সামঞ্জস্যপূর্ণ, নিম্নলিখিত অ্যালগরিদম ব্যবহার করে:
const int min_expected_T = std::numeric_limits<T>::min() +
(narrow_range ? 1 : 0);
const int max_expected_T = std::numeric_limits<T>::max();
const float max_expected_T = std::numeric_limits<float>::max();
const float scale_factor =
(std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
: std::max(min_range / min_expected_T,
max_range / max_expected_T);
নেস্টেড ক্লাস
ক্লাস | অপশন | Dequantize জন্য ঐচ্ছিক বৈশিষ্ট্য |
ধ্রুবক
স্ট্রিং | OP_NAME | এই অপের নাম, টেনসরফ্লো কোর ইঞ্জিন দ্বারা পরিচিত |
পাবলিক পদ্ধতি
আউটপুট <U> | আউটপুট হিসাবে () টেনসরের প্রতীকী হ্যান্ডেল ফেরত দেয়। |
স্ট্যাটিক ডিকুয়ান্টাইজ। অপশন | অক্ষ (দীর্ঘ অক্ষ) |
স্ট্যাটিক <U TNumber প্রসারিত করে > Dequantize <U> | |
স্ট্যাটিক ডিকুয়ান্টাইজ < TFloat32 > | |
স্ট্যাটিক ডিকুয়ান্টাইজ। অপশন | মোড (স্ট্রিং মোড) |
স্ট্যাটিক ডিকুয়ান্টাইজ। অপশন | সংকীর্ণ রেঞ্জ (বুলিয়ান সংকীর্ণ রেঞ্জ) |
আউটপুট <U> | আউটপুট () |
উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি
ধ্রুবক
সর্বজনীন স্ট্যাটিক চূড়ান্ত স্ট্রিং OP_NAME
এই অপের নাম, টেনসরফ্লো কোর ইঞ্জিন দ্বারা পরিচিত
পাবলিক পদ্ধতি
সর্বজনীন আউটপুট <U> হিসাবে আউটপুট ()
টেনসরের প্রতীকী হ্যান্ডেল ফেরত দেয়।
TensorFlow অপারেশনের ইনপুট হল অন্য TensorFlow অপারেশনের আউটপুট। এই পদ্ধতিটি একটি প্রতীকী হ্যান্ডেল পেতে ব্যবহৃত হয় যা ইনপুটের গণনাকে প্রতিনিধিত্ব করে।
পাবলিক স্ট্যাটিক ডিকুয়ান্টাইজ <U> তৈরি করুন ( স্কোপ স্কোপ, অপারেন্ড <? প্রসারিত TType > ইনপুট, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Class<U> dtype, বিকল্প... বিকল্প)
একটি নতুন ডিকোয়ান্টাইজ অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানা পদ্ধতি।
পরামিতি
সুযোগ | বর্তমান সুযোগ |
---|---|
মিনরেঞ্জ | ন্যূনতম স্কেলার মান সম্ভবত ইনপুট জন্য উত্পাদিত. |
সর্বোচ্চ রেঞ্জ | সর্বোচ্চ স্কেলার মান সম্ভবত ইনপুট জন্য উত্পাদিত. |
dtype | আউটপুট টেনসরের প্রকার। বর্তমানে Dequantize float এবং bfloat16 সমর্থন করে। যদি 'dtype' হয় 'bfloat16', এটি শুধুমাত্র 'MIN_COMBINED' মোড সমর্থন করে। |
বিকল্প | ঐচ্ছিক বৈশিষ্ট্য মান বহন করে |
রিটার্নস
- ডিকুয়ান্টাইজের একটি নতুন উদাহরণ
পাবলিক স্ট্যাটিক ডিকুয়ান্টাইজ < TFloat32 > তৈরি করুন ( স্কোপ স্কোপ, অপারেন্ড <? প্রসারিত TType > ইনপুট, অপারেন্ড < TFloat32 > minRange, Operand < TFloat32 > maxRange, বিকল্প... বিকল্প)
ডিফল্ট আউটপুট প্রকারগুলি ব্যবহার করে একটি নতুন ডিকোয়ান্টাইজ অপারেশন মোড়ানো একটি ক্লাস তৈরি করার ফ্যাক্টরি পদ্ধতি।
পরামিতি
সুযোগ | বর্তমান সুযোগ |
---|---|
মিনরেঞ্জ | ন্যূনতম স্কেলার মান সম্ভবত ইনপুট জন্য উত্পাদিত. |
সর্বোচ্চ রেঞ্জ | সর্বোচ্চ স্কেলার মান সম্ভবত ইনপুট জন্য উত্পাদিত. |
বিকল্প | ঐচ্ছিক বৈশিষ্ট্য মান বহন করে |
রিটার্নস
- ডিকুয়ান্টাইজের একটি নতুন উদাহরণ