টেনসরফ্লো :: অপস:: 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], [2]], [[3], [4]]]]
এখানে, ইনপুটটির একটি ব্যাচ রয়েছে 1 এবং প্রতিটি ব্যাচের উপাদানের আকৃতি রয়েছে [1, 1, 4]
, সংশ্লিষ্ট আউটপুটে 2x2 উপাদান থাকবে এবং 1 চ্যানেলের গভীরতা থাকবে (1 = 4 / (block_size * block_size)
)। আউটপুট উপাদান আকৃতি হল [2, 2, 1]
।
বৃহত্তর গভীরতা সহ একটি ইনপুট টেনসরের জন্য, এখানে আকৃতি [1, 1, 1, 12]
, যেমন
x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
এই ক্রিয়াকলাপটি, 2 এর ব্লক আকারের জন্য, নিম্নলিখিত টেনসরটি আকৃতির [1, 2, 2, 3]
ফিরিয়ে দেবে।
[[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]]
Similarly, for the following input of shape
[1 2 2 4]
, and a block size of 2:
x = [[[[1, 2, 3, 4], [5, 6, 7, 8]], [[9, 10, 11, 12], [13, 14, 15, 16]]]]
অপারেটর আকৃতির নিম্নলিখিত টেনসরটি ফিরিয়ে দেবে [1 4 4 1]
:
x = [[[ [1], [2], [5], [6]], [ [3], [4], [7], [8]], [ [9], [10], [13], [14]], [ [11], [12], [15], [16]]]]
Arguments:
- scope: A Scope object
- block_size: The size of the spatial block, same as in Space2Depth.
Returns:
Output
: The output tensor.
Constructors and Destructors |
|
---|---|
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size)
|
|
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs)
|
Public attributes |
|
---|---|
operation
|
|
output
|
Public functions |
|
---|---|
node() const
|
::tensorflow::Node *
|
operator::tensorflow::Input() const
|
|
operator::tensorflow::Output() const
|
|
Public static functions |
|
---|---|
DataFormat(StringPiece x)
|
Structs |
|
---|---|
tensorflow:: |
Optional attribute setters for DepthToSpace. |
Public attributes
আউটপুট
::tensorflow::Output output
পাবলিক ফাংশন
DepthToSpace
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size )
DepthToSpace
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs )
নোড
::tensorflow::Node * node() const
অপারেটর::টেনসরফ্লো::ইনপুট
operator::tensorflow::Input() const
অপারেটর::টেনসরফ্লো::আউটপুট
operator::tensorflow::Output() const
পাবলিক স্ট্যাটিক ফাংশন
ডেটা ফরম্যাট
Attrs DataFormat( StringPiece x )