تدفق التوتر:: العمليات:: 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 ، حيث يكون الشكل المكاني له أبعاد 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 [دفعة / همز(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 تشكيله [دُفعة / 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] - المحاصيل[0, 0] - المحاصيل[0,1]، ..., input_shape[M] * block_shape[M-1] - المحاصيل[M-1,0] - المحاصيل[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 

المشغل::tensorflow::الإدخال

 operator::tensorflow::Input() const 

المشغل::tensorflow::الإخراج

 operator::tensorflow::Output() const