tensorflow:: ops:: BatchToSpaceND

#include <array_ops.h>

BatchToSpace لموترات ND من النوع T.

ملخص

تُعيد هذه العملية تشكيل بُعد "الدفعة" 0 إلى M + 1 بُعدًا على شكل block_shape + [batch] ، ثم تُدمج هذه الكتل مرة أخرى في الشبكة المُحددة بالأبعاد المكانية [1, ..., M] ، للحصول على نتيجة بنفس رتبة المُدخل. بعد ذلك، تُقتطع الأبعاد المكانية لهذه النتيجة الوسيطة اختياريًا وفقًا crops لإنتاج المُخرج. هذه العملية هي عكس عملية SpaceToBatch. انظر أدناه للحصول على وصف دقيق.

الحجج:

  • النطاق: كائن النطاق
  • المدخلات: ND مع شكل input_shape = [batch] + spatial_shape + remaining_shape ، حيث أن spatial_shape له M أبعاد.
  • block_shape: 1-D مع الشكل [M] ، يجب أن تكون جميع القيم >= 1.
  • المحاصيل: ثنائية الأبعاد ذات شكل [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] .

هذه العملية تعادل الخطوات التالية:

  1. إعادة تشكيل input إلى شكل reshaped : [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N-1]]
  2. قم بتبديل أبعاد الشكل reshaped لإنتاج شكل permuted [batch / prod(block_shape),input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],input_shape[M+1], ..., input_shape[N-1]]
  3. إعادة تشكيل permuted لإنتاج reshaped_permuted بالشكل [batch / prod(block_shape),input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],input_shape[M+1], ..., input_shape[N-1]]
  4. قم باقتصاص بداية ونهاية الأبعاد [1, ..., M] من reshaped_permuted وفقًا crops الاقتصاص لإنتاج شكل الإخراج: [batch / prod(block_shape),input_shape[1] * block_shape[0] - crops[0,0] - crops[0,1], ..., input_shape[M] * block_shape[M-1] - crops[M-1,0] - crops[M-1,1],input_shape[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

 operator::tensorflow::Input() const 

operator::tensorflow::Output

 operator::tensorflow::Output() const