Google I/O-তে টিউন করার জন্য ধন্যবাদ। চাহিদা অনুযায়ী সব সেশন দেখুন চাহিদা অনুযায়ী দেখুন

সেন্সরফ্লো :: অপস :: কোয়ান্টিজএন্ডডেকান্টিজেভি 2

#include <array_ops.h>

কোয়ান্টিজেস তারপরে একটি সেন্সরকে ডিক্যান্টিজ করে।

সারসংক্ষেপ

এই বিকল্পটি কোয়ান্টাইজড ফরোয়ার্ড পাস থেকে যথাযথ ক্ষতির অনুকরণ করে:

  1. স্থির বিন্দু সংখ্যায় টেনসরকে কোয়ান্টাইজিং করা হচ্ছে, এটি যখন লক্ষ্য হিসাবে ব্যবহৃত হয় তখন লক্ষ্য পরিমাণ নির্ধারণের পদ্ধতির সাথে মেলে।
  2. নিম্নলিখিত অপ্সের জন্য এটি সম্ভবত ভাসমান পয়েন্ট সংখ্যাগুলিতে পুনঃনির্মাণ করা হচ্ছে, সম্ভবত ম্যাটমুল।

কোয়ান্টাইজ করার বিভিন্ন উপায় রয়েছে। এই সংস্করণটি কেবল স্কেলিং ব্যবহার করে, তাই ০.০ তে মানচিত্র।

কোয়ান্টাইজড আউটপুট টাইপের নির্দিষ্ট 'num_bit' থেকে এটি ন্যূনতম এবং সর্বাধিক উপস্থাপনযোগ্য কোয়ান্টাইজড মান নির্ধারণ করে।

যেমন

  • [-128, 127] স্বাক্ষরিত, সংখ্যা_বিট = 8 এর জন্য বা
  • [0, 255] স্বাক্ষরবিহীন, নাম_বিটস = 8 এর জন্য।

যদি রেঞ্জ_জিভেন == মিথ্যা, প্রাথমিক ইনপুট_মিন, ইনপুট_ম্যাক্স স্বয়ংক্রিয়ভাবে ইনপুট টেনসরের সর্বনিম্ন এবং সর্বাধিক মান হিসাবে নির্ধারিত হবে, অন্যথায় ইনপুট_মিন, ইনপুট_ম্যাক্সের নির্দিষ্ট মানগুলি ব্যবহৃত হয়।

দ্রষ্টব্য: যদি ইনপুট_মিন, ইনপুট_ম্যাক্স সুনির্দিষ্ট করা থাকে তবে তাদেরকে টেনসরের প্রকৃত ন্যূনতম এবং সর্বাধিক মানগুলির সমান করতে হবে না। উদাহরণস্বরূপ কিছু ক্ষেত্রে এই মানগুলি নির্দিষ্ট করে দেওয়া উপকারী হতে পারে যেমন ইনপুট বিতরণের নিম্ন সম্ভাবনার চূড়ান্ত অংশ কেটে যায়।

এই বিকল্পটি সর্বাধিক স্কেল_ফ্যাক্টর নির্ধারণ করে যা প্রারম্ভিক [ইনপুট_মিন, ইনপুট_ম্যাক্স] উপস্থাপনযোগ্য পরিমাণযুক্ত পরিসরের মধ্যে থাকা একটি ব্যাপ্তিতে মানচিত্র তৈরি করে।

এটি ইনপুট_মিন এবং ইনপুট_ম্যাক্সগুলির একটি থেকে স্কেল নির্ধারণ করে, তারপরে সম্মানজনক পরিসীমা সর্বাধিক করতে অন্যটিকে আপডেট করে।

যেমন

  • যদি আউটপুট স্বাক্ষরিত হয়, num_bit = 8, [ইনপুট_মিনি, ইনপুট_ম্যাক্স] = [-10.0, 5.0]: এটি -128 / -10.0 = 12.8 এর স্কেল_ফ্যাক্টর ব্যবহার করবে, এটি ইনপুট_ম্যাক্সকে 127 / 12.8 = হিসাবে আপডেট করবে 9.921875
  • যদি আউটপুট স্বাক্ষরিত হয়, num_bit = 8, [ইনপুট_মিনি, ইনপুট_ম্যাক্স] = [-10.0, 10.0]: এটি 127 / 10.0 = 12.7 এর স্কেল_ফ্যাক্টর ব্যবহার করবে, এই ক্ষেত্রে, এটি ইনপুট_মিনটি 128.0 / 12.7 = -10.07874 হিসাবে আপডেট করবে
  • যদি আউটপুট স্বাক্ষরবিহীন থাকে তবে ইনপুট_মিনিটি 0 হতে বাধ্য হয় এবং কেবলমাত্র নির্দিষ্ট ইনপুট_ম্যাক্স ব্যবহৃত হয়।

স্কেল_ফ্যাক্টর নির্ধারণ এবং ইনপুট পরিসীমা আপডেট করার পরে, এটি 'ইনপুট' টেন্সরের প্রতিটি মানের জন্য নিম্নলিখিতটি প্রয়োগ করে।

আউটপুট = বৃত্তাকার (বাতা (মান, ইনপুট_মিন, ইনপুট_ম্যাক্স) * স্কেল_ফ্যাক্টর) / স্কেল_ফ্যাক্টর।

উপরের বৃত্তাকার ফাংশন প্রদত্ত রাউন্ড_মোডের ভিত্তিতে মানটিকে গোল করে।

যুক্তি:

  • সুযোগ: একটি স্কোপ অবজেক্ট
  • ইনপুট: টেন্সর quantize এবং তারপর dequantize।
  • ইনপুট_মিন: যদি range_given == True , এটি ন্যূনতম ইনপুট মানটি উল্লেখ করে যা প্রতিনিধিত্ব করতে হবে তা নির্দিষ্ট করে, অন্যথায় এটি input টেনসরের সর্বনিম্ন মান থেকে নির্ধারিত হয়।
  • ইনপুট_ম্যাক্স: যদি range_given == True , এটি সর্বাধিক ইনপুট মানটিকে প্রতিনিধিত্ব করার প্রয়োজন তা নির্দিষ্ট করে, অন্যথায় এটি input টেনসরের সর্বোচ্চ মান থেকে নির্ধারিত হয়।

Attrs বৈশিষ্ট্য ( Attrs ):

  • স্বাক্ষরিত_পিন্ড: পরিমাণটি স্বাক্ষরিত বা স্বাক্ষরযুক্ত কিনা। (আসলে এই প্যারামিটারটি signed_output বলা উচিত ছিল)
  • নাম_বিটস: কোয়ান্টাইজেশন এর বিটউইথথ।
  • রেঞ্জ_জিভেন: input টেনসর থেকে পরিসর দেওয়া হবে কিনা তা নির্ধারণ করা উচিত।
  • রাউন্ড_মোড: 'রাউন্ড_মোড' অ্যাট্রিবিউট নিয়ন্ত্রণ করে যে বৃত্তাকার টাই-ব্রেকিং অ্যালগরিদম যখন তাদের কোয়ান্টাইজড সমতুল্যে ভাসমান মানকে বৃত্তাকার করে তখন ব্যবহৃত হয়। নিম্নলিখিত বৃত্তাকার মোডগুলি বর্তমানে সমর্থিত:
  • হালফুয়েভেন: এটি ডিফল্ট রাউন্ড_মোড।
  • HALF_UP: ইতিবাচক দিকে গোল round এই মোডে 8.5 পর্যন্ত 7.5 রাউন্ড এবং -7 পর্যন্ত -7.5 রাউন্ড।
  • সরু_আরঞ্জ: যদি সত্য হয় তবে কোয়ান্টাইজড ন্যূনতম মানটির পরম মান 1 বৃহত্তর পরিবর্তে কোয়ান্টাইজড সর্বাধিক মানের সমান। অর্থাত্ 8 বিট পরিমাণের জন্য, সর্বনিম্ন মান -128 এর পরিবর্তে -127 হয় is

রিটার্নস:

  • 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

পাবলিক স্ট্যাটিক ফাংশন

NarrowRange (bool x)
NumBits (int64 x)
RangeGiven (bool x)
RoundMode (StringPiece x)
SignedInput (bool x)

স্ট্রাক্টস

টেনসরফ্লো :: অপ্স :: কোয়ান্টিজএন্ডডেকান্টিজেভি 2 :: অ্যাটারস

কোয়ান্টিজএন্ডডেকান্টিজেভি 2 এর জন্য .চ্ছিক অ্যাট্রিবিউট সেটটার

জনসাধারণের গুণাবলী

অপারেশন

Operation operation

আউটপুট

::tensorflow::Output output

পাবলিক ফাংশন

কোয়ান্টিজএন্ডডেকান্টিজেভি 2

 QuantizeAndDequantizeV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max
)

কোয়ান্টিজএন্ডডেকান্টিজেভি 2

 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 NarrowRange(
  bool x
)

নম্ববিটস

Attrs NumBits(
  int64 x
)

রেঞ্জজিভেন

0bcc83890

রাউন্ডমোড

Attrs RoundMode(
  StringPiece x
)

সাইনড ইনপুট

Attrs SignedInput(
  bool x
)