BatchToSpaceNd

الطبقة النهائية العامة BatchToSpaceNd

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

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

الأساليب العامة

الإخراج <T>
كإخراج ()
إرجاع المقبض الرمزي للموتر.
ثابت <T، U يمتد الرقم، V يمتد الرقم> BatchToSpaceNd <T>
إنشاء (نطاق النطاق ، إدخال المعامل <T>، المعامل <U> blockShape، المعامل <V> المحاصيل)
طريقة المصنع لإنشاء فئة تغلف عملية BatchToSpaceNd جديدة.
الإخراج <T>

الطرق الموروثة

الأساليب العامة

الإخراج العام <T> كإخراج ()

إرجاع المقبض الرمزي للموتر.

المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.

إنشاء BatchToSpaceNd <T> ثابت عام ( نطاق النطاق ، إدخال المعامل <T>، المعامل <U> blockShape، المعامل <V> المحاصيل)

طريقة المصنع لإنشاء فئة تغلف عملية BatchToSpaceNd جديدة.

حدود
نِطَاق النطاق الحالي
مدخل ND بالشكل `input_shape = [batch] + spatial_shape + المتبقي_shape`، حيث يكون للشكل المكاني أبعاد M.
blockShape 1-D بالشكل `[M]`، يجب أن تكون جميع القيم >= 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]`.

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

1. إعادة تشكيل "الإدخال" إلى "إعادة تشكيل" الشكل: [block_shape [0]، ...، block_shape [M-1]، Batch / prod (block_shape)، input_shape [1]، ...، input_shape [N- 1]]

2. تبديل أبعاد "المعاد تشكيلها" لإنتاج "تبديل" الشكل [دفعة / منتج (block_shape)،

input_shape [1]، block_shape [0]، ...، input_shape [M]، block_shape [M-1]،

input_shape[M+1]، ...، input_shape[N-1]]

3. إعادة تشكيل "مُعاد تشكيله" لإنتاج "مُعاد تشكيله" للشكل [دفعة / منتج (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]` من ``المعاد تشكيلها'' وفقًا لـ `المحاصيل` لإنتاج مخرجات الشكل: [batch / prod(block_shape)،

input_shape[1] * block_shape[0] - المحاصيل[0,0] - المحاصيل[0,1]، ..., input_shape[M] * block_shape[M-1] - المحاصيل[M-1,0] - المحاصيل [م-1،1]،

input_shape[M+1]، ...، input_shape[N-1]]

بعض الأمثلة:

(1) للإدخال التالي للشكل `[4, 1, 1, 1]`، `block_shape = [2، 2]`، و`المحاصيل = [[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]`, و`المحاصيل = [[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]`، و`المحاصيل = [[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]`, و`المحاصيل = [[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]]]]
 

عائدات
  • مثيل جديد من BatchToSpaceNd

الإخراج العام <T> الإخراج ()