টেনসরফ্লো :: অপস:: DepthToSpace

#include <array_ops.h>

T টাইপ টেনসরের জন্য DepthToSpace।

সারাংশ

স্থানিক ডেটার ব্লকগুলিতে গভীরতা থেকে ডেটা পুনর্বিন্যাস করে। এটি SpaceToDepth এর বিপরীত রূপান্তর। আরও নির্দিষ্টভাবে, এই অপটি ইনপুট টেনসরের একটি অনুলিপি আউটপুট করে যেখানে depth মাত্রা থেকে মানগুলি স্থানিক ব্লকে height এবং width মাত্রায় সরানো হয়। attr block_size ইনপুট ব্লকের আকার এবং কিভাবে ডেটা সরানো হয় তা নির্দেশ করে।

  • block_size * block_size block_size x block_size অ-ওভারল্যাপিং ব্লকগুলিতে পুনরায় সাজানো হয়েছে
  • আউটপুট টেনসরের প্রস্থ হল input_depth * block_size , যেখানে উচ্চতা হল input_height * block_size
  • আউটপুট চিত্রের প্রতিটি ব্লকের মধ্যে Y, X স্থানাঙ্কগুলি ইনপুট চ্যানেল সূচকের উচ্চ ক্রম উপাদান দ্বারা নির্ধারিত হয়।
  • ইনপুট টেনসরের গভীরতা অবশ্যই block_size * block_size দ্বারা বিভাজ্য হতে হবে।

data_format attr নিম্নলিখিত বিকল্পগুলির সাথে ইনপুট এবং আউটপুট টেনসরগুলির বিন্যাস নির্দিষ্ট করে: "NHWC": [ batch, height, width, channels ] "NCHW": [ batch, channels, height, width ] "NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]

অপারেশনটিকে একটি 6-ডি টেনসর রূপান্তর হিসাবে বিবেচনা করা কার্যকর। যেমন data_format = NHWC-এর জন্য, ইনপুট টেনসরের প্রতিটি উপাদান 6টি স্থানাঙ্কের মাধ্যমে নির্দিষ্ট করা যেতে পারে, মেমরি লেআউটের তাত্পর্য হ্রাস করে অর্ডার করা হয়েছে যেমন: n,iY,iX,bY,bX,oC (যেখানে n=ব্যাচ সূচক, iX, iY মানে X বা ইনপুট ইমেজের মধ্যে Y স্থানাঙ্ক, bX, bY মানে আউটপুট ব্লকের মধ্যে স্থানাঙ্ক, oC মানে আউটপুট চ্যানেল)। আউটপুটটি নিম্নলিখিত লেআউটে স্থানান্তরিত ইনপুট হবে: n,iY,bY,iX,bX,oC

এই অপারেশনটি কনভোলিউশনের মধ্যে সক্রিয়করণের আকার পরিবর্তনের জন্য দরকারী (কিন্তু সমস্ত ডেটা রাখা), যেমন পুলিংয়ের পরিবর্তে। এটি বিশুদ্ধরূপে বিবর্তনীয় মডেল প্রশিক্ষণের জন্যও দরকারী।

উদাহরণস্বরূপ, আকৃতির একটি ইনপুট দেওয়া হয়েছে [1, 1, 1, 4] , data_format = "NHWC" এবং block_size = 2:

x = [[[[1, 2, 3, 4]]]]

  


 

This operation will output a tensor of shape [1, 2, 2, 1]:


 


   

 এখানে, ইনপুটটির একটি ব্যাচ রয়েছে 1 এবং প্রতিটি ব্যাচের উপাদানের আকৃতি রয়েছে [1, 1, 4] , সংশ্লিষ্ট আউটপুটে 2x2 উপাদান থাকবে এবং 1 চ্যানেলের গভীরতা থাকবে (1 = 4 / (block_size * block_size) )। আউটপুট উপাদান আকৃতি হল [2, 2, 1]

বৃহত্তর গভীরতা সহ একটি ইনপুট টেনসরের জন্য, এখানে আকৃতি [1, 1, 1, 12] , যেমন

 এই ক্রিয়াকলাপটি, 2 এর ব্লক আকারের জন্য, নিম্নলিখিত টেনসরটি আকৃতির [1, 2, 2, 3] ফিরিয়ে দেবে।