টেনসরফ্লো :: অপস:: BatchToSpaceND
#include <array_ops.h>
T টাইপের ND টেনসরের জন্য BatchToSpace।
সারাংশ
এই অপারেশনটি "ব্যাচ" ডাইমেনশন 0 কে M + 1
আকার block_shape + [batch]
এর আকারে পরিবর্তন করে, এই ব্লকগুলিকে স্থানিক মাত্রা [1, ..., M]
দ্বারা সংজ্ঞায়িত গ্রিডে ফেরত দেয়, যাতে ফলাফল পাওয়া যায়। ইনপুট হিসাবে একই পদে. এই মধ্যবর্তী ফলাফলের স্থানিক মাত্রাগুলি তারপরে আউটপুট উত্পাদন করার জন্য crops
অনুসারে ক্রপ করা হয়। এটি SpaceToBatch এর বিপরীত। একটি সুনির্দিষ্ট বিবরণের জন্য নীচে দেখুন.
যুক্তি:
- স্কোপ: একটি স্কোপ অবজেক্ট
- ইনপুট: ND আকৃতির সাথে
input_shape = [batch] + spatial_shape + remaining_shape
, যেখানে স্থানিক_shape-এর M মাত্রা আছে। - ব্লক_শেপ: আকৃতি
[M]
সহ 1-D, সমস্ত মান হতে হবে >= 1। - ফসল: 2-D আকৃতি
[M, 2]
সহ, সমস্ত মান অবশ্যই >= 0 হতে হবেcrops[i] = [crop_start, crop_end]
ইনপুট ডাইমেনশনi + 1
থেকে ক্রপ করার পরিমাণ নির্দিষ্ট করে, যা স্থানিক মাত্রাi
এর সাথে মিলে যায়। এটা প্রয়োজন যেcrop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]
এই অপারেশনটি নিম্নলিখিত ধাপগুলির সমতুল্য:
- আকৃতির
reshaped
input
পুনরায় আকার দিন: [block_shape[0], ..., block_shape[M-1], batch/prod(block_shape), input_shape[1], ..., input_shape[N-1]] - আকৃতির
permuted
তৈরি করতেreshaped
পারমিউট মাত্রা [ব্যাচ / প্রোড(ব্লক_শেপ), ইনপুট_শেপ[1], ব্লক_শেপ[0], ..., ইনপুট_শেপ[M], ব্লক_শেপ[M-1],ইনপুট_শেপ[M+1], ..., input_shape[N-1]] - আকৃতি [ব্যাচ / প্রোড(ব্লক_শেপ), ইনপুট_শেপ[1] * ব্লক_শেপ[0], ..., ইনপুট_শেপ[
permuted
reshaped_permuted
* ব্লক_শেপ[M-1],ইনপুট_শেপ[M+1], .. ., input_shape[N-1]] - আকৃতির আউটপুট তৈরি করতে
crops
অনুসারেreshaped_permuted
মাত্রার শুরু এবং শেষ[1, ..., M]
কাটুন: [ব্যাচ / প্রোড(ব্লক_শেপ), ইনপুট_শেপ[1] * ব্লক_শেপ[0] - ফসল[0, 0] - ফসল[0,1], ..., ইনপুট_শেপ[M] * ব্লক_শেপ[M-1] - ফসল[M-1,0] - ফসল[M-1,1],ইনপুট_শেপ[M+1] , ..., input_shape[N-1]]
কিছু উদাহরণ:
(1) আকৃতির নিম্নলিখিত ইনপুটের জন্য [4, 1, 1, 1]
, block_shape = [2, 2]
, এবং crops = [[0, 0], [0, 0]]
:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
আউটপুট টেনসরের আকৃতি রয়েছে [1, 2, 2, 1]
এবং মান:
x = [[[[1], [2]], [[3], [4]]]]
(2) আকৃতির নিম্নলিখিত ইনপুটের জন্য [4, 1, 1, 3]
, block_shape = [2, 2]
, এবং crops = [[0, 0], [0, 0]]
:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
আউটপুট টেনসরের আকৃতি রয়েছে [1, 2, 2, 3]
এবং মান:
x = [[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]]
(3) আকৃতির নিম্নলিখিত ইনপুটের জন্য [4, 2, 2, 1]
, block_shape = [2, 2]
, এবং crops = [[0, 0], [0, 0]]
:
x = [[[[1], [3]], [[9], [11]]], [[[2], [4]], [[10], [12]]], [[[5], [7]], [[13], [15]]], [[[6], [8]], [[14], [16]]]]
আউটপুট টেনসরের আকৃতি [1, 4, 4, 1]
এবং মান রয়েছে:
x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]], [[13], [14], [15], [16]]]]
(4) আকৃতির নিম্নলিখিত ইনপুটের জন্য [8, 1, 3, 1]
, block_shape = [2, 2]
, এবং crops = [[0, 0], [2, 0]]
:
x = [[[[0], [1], [3]]], [[[0], [9], [11]]], [[[0], [2], [4]]], [[[0], [10], [12]]], [[[0], [5], [7]]], [[[0], [13], [15]]], [[[0], [6], [8]]], [[[0], [14], [16]]]]
আউটপুট টেনসরের আকৃতি [2, 2, 4, 1]
এবং মান রয়েছে:
x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]]], [[[9], [10], [11], [12]], [[13], [14], [15], [16]]]]
রিটার্ন:
-
Output
: আউটপুট টেনসর।
কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর | |
---|---|
BatchToSpaceND (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input block_shape, :: tensorflow::Input crops) |
পাবলিক বৈশিষ্ট্য | |
---|---|
operation | |
output |
পাবলিক ফাংশন | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
পাবলিক বৈশিষ্ট্য
অপারেশন
Operation operation
আউটপুট
::tensorflow::Output output
পাবলিক ফাংশন
BatchToSpaceND
BatchToSpaceND( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input block_shape, ::tensorflow::Input crops )
নোড
::tensorflow::Node * node() const
অপারেটর::টেনসরফ্লো::ইনপুট
operator::tensorflow::Input() const
অপারেটর::টেনসরফ্লো::আউটপুট
operator::tensorflow::Output() const