This page was translated by the Cloud Translation API.
Switch to English

আকার এবং বিন্যাস

এক্সএলএ Shape প্রোটো ( xla_data.proto ) একটি এন-ডাইমেনশনাল অ্যারের (সংক্ষেপে অ্যারে ) র‌্যাঙ্ক, আকার এবং ডেটা ধরণের বর্ণনা করে।

পরিভাষা, স্বরলিপি এবং কনভেনশনস

  • একটি অ্যারের র‌্যাঙ্ক মাত্রা সংখ্যার সমান। একটি অ্যারের প্রকৃত র‌্যাঙ্কটি এমন মাত্রাগুলির সংখ্যা যা যার আকার 1 এর বেশি হয়।

  • একটি N ডাইমেনশনাল অ্যারের জন্য মাত্রা 0 থেকে N-1 পর্যন্ত গণনা করা হয়। মাত্রার সংখ্যাগুলি সুবিধার জন্য নির্বিচার লেবেল। এই মাত্রা সংখ্যার ক্রমটি আকারের বিন্যাসে কোনও নির্দিষ্ট গৌণ / বড় ক্রমকে বোঝায় না। বিন্যাসটি Layout প্রোটো দ্বারা নির্ধারিত হয়।

  • কনভেনশন দ্বারা, মাত্রা সংখ্যা মাত্রা ক্রম বৃদ্ধি তালিকাভুক্ত করা হয়। উদাহরণস্বরূপ, আকারের একটি 3-মাত্রিক অ্যারের জন্য [A x B x C] , মাত্রা 0 আকার A , মাত্রা 1 আকার B এবং আকারের 2 আকার C

    এক্সএলএর কিছু ইউটিলিটিগুলি পাইথনের অনুরূপ নেতিবাচক সূচকে সমর্থন করে; মাত্রা -1 হ'ল শেষ মাত্রা (একটি N ডাইমেনশনাল অ্যারের জন্য N-1 -1 এর সমতুল্য)। উদাহরণস্বরূপ, উপরে বর্ণিত ত্রি-মাত্রিক অ্যারের জন্য, মাত্রা -1 এর আকার C , মাত্রা -2 এর আকার B এবং আরও অনেক কিছু।

  • দুই, তিন এবং চার মাত্রিক অ্যারেগুলির প্রায়শই মাত্রার সাথে যুক্ত নির্দিষ্ট বর্ণ থাকে। উদাহরণস্বরূপ, 2D অ্যারের জন্য:

    • মাত্রা 0: y
    • মাত্রা 1: x

    একটি 3D অ্যারের জন্য:

    • মাত্রা 0: z
    • মাত্রা 1: y
    • মাত্রা 2: x

    একটি 4 ডি অ্যারের জন্য:

    • মাত্রা 0: p
    • মাত্রা 1: z
    • মাত্রা 2: y
    • মাত্রা 3: x
  • এক্সএলএআই এপিআই-এ কাজ করে যা মাত্রা নেয় মাত্রা সংখ্যার ক্রম বাড়িয়ে তোলে। initializer_list হিসাবে মাত্রা পাস করার সময় এটি ব্যবহৃত অর্ডারের সাথে মেলে; যেমন

    ShapeUtil::MakeShape(F32, {A, B, C, D})

    এমন আকার তৈরি করবে যার মাত্রার আকার অ্যারেটি ক্রম [A, B, C, D]

বিন্যাস

Layout প্রোটো বর্ণনা করে যে কীভাবে অ্যারে মেমরিতে প্রতিনিধিত্ব করা হয়। Layout প্রোটোতে নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত রয়েছে:

 message Layout {
  repeated int64 minor_to_major = 1;
  repeated int64 padded_dimensions = 2;
  optional PaddingValue padding_value = 3;
}
 

অপ্রাপ্তবয়স্ক থেকে বড় মাত্রা ক্রম

কেবলমাত্র প্রয়োজনীয় ক্ষেত্রটি minor_to_major । এই ক্ষেত্রটি একটি আকারের মধ্যে মাত্রাগুলির গৌণ-থেকে-প্রধান ক্রমকে বর্ণনা করে। minor_to_major মানগুলি অ্যারের মাত্রাগুলি (একটি N ডাইমেনশনাল অ্যারের জন্য 0 থেকে N-1 ) এর ক্রম যা প্রথম minor_to_major মান পর্যন্ত সবচেয়ে গৌণ মাত্রা যা সবচেয়ে বড় মাত্রা। সর্বাধিক-গৌণ মাত্রাটি এমন মাত্রা যা লিনিয়ার মেমোরিতে বিস্তৃত অ্যারের উপাদানগুলির মধ্য দিয়ে পদক্ষেপ নেওয়ার সময় সবচেয়ে দ্রুত পরিবর্তন হয় changes

উদাহরণস্বরূপ, নিম্নলিখিত 2D আকারের অ্যারে [2 x 3] :

 a b c
d e f
 

এখানে মাত্রা 0 মাপ 2, এবং মাত্রা 1 আকার 3 If যদি বিন্যাসে minor_to_major ক্ষেত্র [0, 1] তবে মাত্রা 0 হল সর্বাধিক- minor_to_major মাত্রা এবং মাত্রা 1 সর্বাধিক-প্রধান মাত্রা। এটি লিনিয়ার মেমোরিতে নিম্নলিখিত বিন্যাসের সাথে মিলে যায়:

 a d b e c f
 

N-1 পর্যন্ত 0 পর্যন্ত এই অপ্রাপ্তবয়স্ক থেকে প্রধান মাত্রার ক্রমটি কলাম- মেজরের অনুরূপ (র‌্যাঙ্ক 2 এ)। মাত্রাগুলির একঘেয়েমিক অর্ডিং ধরে নেওয়া, কোডটিতে এই লেআউটটি উল্লেখ করার জন্য আমরা ব্যবহার করতে পারি এমন অন্য নামটি কেবল "ম্লান 0 ছোট হয়"।

অন্যদিকে, যদি বিন্যাসে minor_to_major ক্ষেত্রটি [1, 0] তবে লিনিয়ার মেমরির বিন্যাসটি হ'ল:

 a b c d e f
 

N-1 ডাইমেনশনাল অ্যারের জন্য N N-1 নীচে 0 -এর একটি অপ্রাপ্তবয়স্ক থেকে প্রধান মাত্রার ক্রমটি সারি- মেজরের অনুরূপ (র‌্যাঙ্ক 2 এ)। মাত্রাগুলির একঘেয়েমিক অর্ডিং ধরে নেওয়া, কোডটিতে এই লেআউটটি উল্লেখ করতে আমরা ব্যবহার করতে পারি এমন অন্য নামটি কেবল "ম্লান 0 প্রধান"।

গৌণ-থেকে-বড় ক্রম ডিফল্ট

নতুন নির্মিত আকারের জন্য ডিফল্ট বিন্যাস হ'ল "মাত্রা ক্রম মেজর-থেকে-অপ্রাপ্তবয়স্ক" (র‌্যাঙ্ক ২-তে সারি-মেজাজের অনুরূপ)।

প্যাডিং

প্যাডিং padded_dimensions padding_value padded_dimensions এবং padding_value ক্ষেত্রগুলিতে সংজ্ঞায়িত করা হয়। ক্ষেত্রের padded_dimensions প্রতিটি padded_dimensions আকারগুলি (প্রস্থগুলি) বর্ণনা করে। যদি উপস্থিত থাকে তবে padded_dimensions উপাদানের সংখ্যা অবশ্যই আকারের র‌্যাঙ্কের সমান হবে।

উদাহরণস্বরূপ, উপরে উল্লিখিত [2 x 3] অ্যারে প্রদত্ত, যদি padded_dimensions [3, 5] তবে মাত্রা 0 টি 3 প্রস্থে প্যাড করা হবে এবং মাত্রা 1 টি 5 প্রস্থে প্যাড করা হবে (ধরে নিচ্ছি) 0 এবং কলাম-প্রধান বিন্যাসের একটি প্যাডিং মানটি হল:

 a d 0 b e 0 c f 0 0 0 0 0 0 0
 

এটি একই মাইনর-টু-মেজর ডাইমেনশন অর্ডারের সাথে নিম্নলিখিত অ্যারের বিন্যাসের সমতুল্য:

 a b c 0 0
d e f 0 0
0 0 0 0 0
 

অ্যারেতে সূচক করা হচ্ছে

বর্গ IndexUtil মধ্যে index_util.h বহুমাত্রিক সূচকের মধ্যে এবং একটি আকৃতি এবং বিন্যাস দেওয়া সূচকের রৈখিক রূপান্তরের জন্য ইউটিলিটি প্রদান করে। বহুমাত্রিক সূচকগুলিতে প্রতিটি মাত্রার জন্য একটি int64 সূচক অন্তর্ভুক্ত। লিনিয়ার সূচকগুলি int64 একক int64 মান যা অ্যারে ধারণ করে বাফারে সূচক হয়। আকার এবং লেআউটগুলির উত্পাদন এবং ম্যানিপুলেশনকে সহজতর করে এমন ইউটিলিটির জন্য একই ডিরেক্টরিতে shape_util.h এবং layout_util.h দেখুন।