টেনসরফ্লো :: অপস:: QuantizeAndDequantizeV2
#include <array_ops.h>
quantizes তারপর একটি tensor dequantizes.
সারাংশ
এই অপটি কোয়ান্টাইজড ফরওয়ার্ড পাস থেকে নির্ভুলতা ক্ষতির অনুকরণ করে:
- টেনসরকে নির্দিষ্ট বিন্দু সংখ্যায় পরিমাপ করা, যা অনুমানে ব্যবহৃত হলে লক্ষ্যমাত্রা পরিমাপকরণ পদ্ধতির সাথে মেলে।
- নিম্নোক্ত অপ্সের জন্য এটিকে ফ্লোটিং পয়েন্ট সংখ্যায় ফিরিয়ে আনা হচ্ছে, সম্ভবত মাটমুল।
পরিমাপ করার বিভিন্ন উপায় আছে। এই সংস্করণটি শুধুমাত্র স্কেলিং ব্যবহার করে, তাই 0.0 মানচিত্র 0 তে।
কোয়ান্টাইজড আউটপুট টাইপের নির্দিষ্ট 'num_bits' থেকে, এটি ন্যূনতম এবং সর্বাধিক প্রতিনিধিত্বযোগ্য কোয়ান্টাইজড মান নির্ধারণ করে।
যেমন
- [-128, 127] স্বাক্ষরিত, num_bits = 8, বা
- স্বাক্ষরবিহীন, num_bits = 8 এর জন্য [0, 255]।
range_given == মিথ্যা হলে, প্রাথমিক ইনপুট_মিন, ইনপুট_ম্যাক্স স্বয়ংক্রিয়ভাবে ইনপুট টেনসরের সর্বনিম্ন এবং সর্বোচ্চ মান হিসাবে নির্ধারিত হবে, অন্যথায় input_min, input_max এর নির্দিষ্ট মান ব্যবহার করা হবে।
দ্রষ্টব্য: যদি input_min, input_max নির্দিষ্ট করা থাকে, তাহলে তাদের টেনসরের প্রকৃত সর্বনিম্ন এবং সর্বোচ্চ মান সমান করার প্রয়োজন নেই। যেমন কিছু ক্ষেত্রে এই মানগুলি নির্দিষ্ট করা উপকারী হতে পারে যেমন ইনপুট বিতরণের কম সম্ভাব্যতার চরমগুলি ক্লিপ করা হয়।
এই অপটি সর্বাধিক স্কেল_ফ্যাক্টর নির্ধারণ করে যা প্রারম্ভিক [ইনপুট_মিন, ইনপুট_ম্যাক্স] পরিসরকে একটি পরিসরে ম্যাপ করবে যা প্রতিনিধিত্বযোগ্য পরিমাপকৃত পরিসরের মধ্যে থাকে।
এটি input_min এবং input_max এর একটি থেকে স্কেল নির্ধারণ করে, তারপর প্রতিনিধিত্বযোগ্য পরিসরটি সর্বাধিক করতে অন্যটিকে আপডেট করে।
যেমন
- যদি আউটপুট স্বাক্ষরিত হয়, num_bits = 8, [input_min, input_max] = [-10.0, 5.0]: এটি -128 / -10.0 = 12.8 এর একটি স্কেল_ফ্যাক্টর ব্যবহার করবে এই ক্ষেত্রে, এটি input_max আপডেট করবে 127 / 12.8 = 9.921875
- যদি আউটপুট স্বাক্ষরিত হয়, num_bits = 8, [input_min, input_max] = [-10.0, 10.0]: এটি 127 / 10.0 = 12.7 এর একটি স্কেল_ফ্যাক্টর ব্যবহার করবে এই ক্ষেত্রে, এটি input_min আপডেট করবে 128.0 / 12.7 = -107 = -107.
- আউটপুট স্বাক্ষরবিহীন হলে, input_min 0 হতে বাধ্য করা হয়, এবং শুধুমাত্র নির্দিষ্ট input_max ব্যবহার করা হয়।
স্কেল_ফ্যাক্টর নির্ধারণ এবং ইনপুট পরিসর আপডেট করার পরে, এটি 'ইনপুট' টেনসরের প্রতিটি মানের জন্য নিম্নলিখিতটি প্রয়োগ করে।
আউটপুট = বৃত্তাকার (বাতা (মান, ইনপুট_মিন, ইনপুট_ম্যাক্স) * স্কেল_ফ্যাক্টর) / স্কেল_ফ্যাক্টর।
উপরের রাউন্ড ফাংশনটি প্রদত্ত রাউন্ড_মোডের উপর ভিত্তি করে মানটিকে রাউন্ড করে।
যুক্তি:
- স্কোপ: একটি স্কোপ অবজেক্ট
- ইনপুট: টেনসর পরিমাপ করতে এবং তারপর ডিকুয়ান্টাইজ করতে।
- input_min: যদি
range_given == True
, এটি ন্যূনতম ইনপুট মান নির্দিষ্ট করে যা উপস্থাপন করা প্রয়োজন, অন্যথায় এটিinput
টেনসরের ন্যূনতম মান থেকে নির্ধারিত হয়। - input_max: যদি
range_given == True
, তাহলে এটি সর্বাধিক ইনপুট মান নির্দিষ্ট করে যা উপস্থাপন করা প্রয়োজন, অন্যথায় এটিinput
টেনসরের সর্বোচ্চ মান থেকে নির্ধারিত হয়।
ঐচ্ছিক বৈশিষ্ট্য (দেখুন Attrs
):
- signed_input: কোয়ান্টাইজেশন স্বাক্ষরিত হোক বা স্বাক্ষরবিহীন। (আসলে এই প্যারামিটারটিকে
signed_output
বলা উচিত ছিল) - num_bits: কোয়ান্টাইজেশনের বিটউইথ।
- range_given: পরিসীমা দেওয়া হয়েছে কিনা বা
input
টেনসর থেকে নির্ধারণ করা উচিত। - রাউন্ড_মোড: 'রাউন্ড_মোড' অ্যাট্রিবিউট নিয়ন্ত্রণ করে যে রাউন্ডিং টাই-ব্রেকিং অ্যালগরিদম ব্যবহার করা হয় যখন ফ্লোট মানগুলি তাদের কোয়ান্টাইজড সমতুল্যের সাথে রাউন্ডিং করা হয়। নিম্নলিখিত রাউন্ডিং মোডগুলি বর্তমানে সমর্থিত:
- HALF_TO_EVEN: এটি হল ডিফল্ট রাউন্ড_মোড।
- HALF_UP: ধনাত্মক দিকে বৃত্তাকার। এই মোডে 8 পর্যন্ত 7.5 রাউন্ড এবং -7 পর্যন্ত -7.5 রাউন্ড।
- narrow_range: যদি সত্য হয়, তাহলে পরিমাপকৃত সর্বনিম্ন মানের পরম মান 1 বৃহত্তর এর পরিবর্তে পরিমাপকৃত সর্বোচ্চ মানের সমান। অর্থাৎ 8 বিট কোয়ান্টাইজেশনের জন্য, সর্বনিম্ন মান -128 এর পরিবর্তে -127।
- অক্ষ: নির্দিষ্ট করা হলে, এই অক্ষটিকে একটি চ্যানেল বা স্লাইস অক্ষ হিসাবে বিবেচনা করা হয় এবং এই অক্ষ বরাবর প্রতিটি চ্যানেল বা স্লাইসের জন্য একটি পৃথক পরিমাপ পরিসীমা ব্যবহার করা হয়।
রিটার্ন:
-
Output
: আউটপুট টেনসর।
কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর | |
---|---|
QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max) | |
QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs) |
পাবলিক বৈশিষ্ট্য | |
---|---|
operation | |
output |
পাবলিক ফাংশন | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
পাবলিক স্ট্যাটিক ফাংশন | |
---|---|
Axis (int64 x) | |
NarrowRange (bool x) | |
NumBits (int64 x) | |
RangeGiven (bool x) | |
RoundMode (StringPiece x) | |
SignedInput (bool x) |
কাঠামো | |
---|---|
tensorflow:: ops:: QuantizeAndDequantizeV2:: Attrs | QuantizeAndDequantizeV2 এর জন্য ঐচ্ছিক অ্যাট্রিবিউট সেটার। |
পাবলিক বৈশিষ্ট্য
অপারেশন
Operation operation
আউটপুট
::tensorflow::Output output
পাবলিক ফাংশন
QuantizeAndDequantizeV2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max )
QuantizeAndDequantizeV2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs )
নোড
::tensorflow::Node * node() const
অপারেটর::টেনসরফ্লো::ইনপুট
operator::tensorflow::Input() const
অপারেটর::টেনসরফ্লো::আউটপুট
operator::tensorflow::Output() const
পাবলিক স্ট্যাটিক ফাংশন
অক্ষ
Attrs Axis( int64 x )
ন্যারোরেঞ্জ
Attrs NarrowRange( bool x )
NumBits
Attrs NumBits( int64 x )
রেঞ্জ দেওয়া
Attrs RangeGiven( bool x )
রাউন্ডমোড
Attrs RoundMode( StringPiece x )
স্বাক্ষরিত ইনপুট
Attrs SignedInput( bool x )