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

সেন্সরফ্লো :: অপস :: ব্যাচটোসপেসেন্ড

#include <array_ops.h>

টাইপ টি-এর এনডি টেনারগুলির জন্য ব্যাচটোস্পেস

সারসংক্ষেপ

এই অপারেশনটি "ব্যাচ" মাত্রাকে ০ আকারের block_shape + [batch] এর M + 1 মাত্রায় block_shape + [batch] , এই ব্লকগুলিকে স্থানিক মাত্রা [1, ..., M] দ্বারা সংজ্ঞায়িত গ্রিডে ফিরিয়ে block_shape + [batch] , ফলাফল সহ ফলাফল পেতে ইনপুট হিসাবে একই র‌্যাঙ্ক। এই মধ্যবর্তী ফলাফলের স্থানিক মাত্রাগুলি আউটপুট উত্পাদন করার জন্য crops অনুসারে বিকল্পভাবে ক্রপ করা হয়। এটি স্পেসটোব্যাচের বিপরীত। একটি সুনির্দিষ্ট বিবরণ জন্য নীচে দেখুন।

যুক্তি:

  • সুযোগ: একটি স্কোপ অবজেক্ট
  • ইনপুট: এনডি আকারের input_shape = [batch] + spatial_shape + remaining_shape সহ, যেখানে স্থানিক_শপের এম মাত্রা রয়েছে।
  • ব্লক_শ্যাপ: [M] আকৃতিযুক্ত 1-ডি, সমস্ত মান অবশ্যই> = 1 হওয়া উচিত।
  • শস্যগুলি: আকারের সাথে 2-ডি [M, 2] , সমস্ত মান অবশ্যই> = ০. crops[i] = [crop_start, crop_end] হতে হবে crops[i] = [crop_start, crop_end] ইনপুট মাত্রা i + 1 থেকে crops[i] = [crop_start, crop_end] পরিমাণ নির্দিষ্ট করে, যা স্থানিক মাত্রা i । এটি crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]

এই অপারেশনটি নিম্নলিখিত পদক্ষেপগুলির সমতুল্য:

  1. পুনর্নির্মাণ input করতে reshaped আকৃতি: [block_shape [0], ..., block_shape [এম-1], ব্যাচ / শঙ্কু (block_shape), input_shape [1], ..., input_shape [এন-1]]
  2. এর সরিয়ে রাখা মাত্রা reshaped উত্পাদন করতে permuted আকৃতি [ব্যাচ / শঙ্কু (block_shape), input_shape [1], block_shape [0], ..., input_shape [এম], block_shape [এম-1], input_shape [এম +1], ..., ইনপুট_শ্যাপ [এন -১]]
  3. পুনর্নির্মাণ permuted উত্পাদন করতে reshaped_permuted আকৃতি [ব্যাচ / শঙ্কু (block_shape), input_shape [1] * block_shape [0], ..., input_shape [এম] * block_shape [এম-1], input_shape [এম +1], .. ।, ইনপুট_শ্যাপ [এন -1]]
  4. আকারের আউটপুট উত্পাদন করতে crops অনুসারে reshaped_permuted আকারযুক্ত_পরিমাণের [1, ..., M] আকারের শুরু এবং শেষটি ক্রপ করুন: [ব্যাচ / প্রোড (ব্লক_ শেপ), ইনপুট_শ্যাপ [1] * ব্লক_শ্যাপি [0] - শস্য [0, 0] - ফসল [0,1], ..., ইনপুট_শ্যাপ [এম] * ব্লক_শ্যাপ [এম -1] - ফসল [এম -1,0] - ফসল [এম -1,1], ইনপুট_শ্যাপ [এম + 1] , ..., ইনপুট_শ্যাপ [এন -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]]]]

(২) নীচের আকারের ইনপুট [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(
  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