SpaceToBatch لموترات ND من النوع T.
تقوم هذه العملية بتقسيم الأبعاد "المكانية" `[1, ..., M]` للإدخال إلى شبكة من الكتل ذات الشكل `block_shape`، وتشذير هذه الكتل مع البعد "الدفعي" (0) كما هو الحال في الإخراج ، والأبعاد المكانية `[1، ...، M]` تتوافق مع الموضع داخل الشبكة، ويجمع بُعد الدُفعة كلاً من الموضع داخل الكتلة المكانية وموضع الدُفعة الأصلي. قبل التقسيم إلى كتل، تكون الأبعاد المكانية للإدخال اختياريًا صفرية وفقًا لـ "الحشوات". انظر أدناه للحصول على وصف دقيق.
هذه العملية تعادل الخطوات التالية:
1. لوحة صفرية لبداية ونهاية الأبعاد `[1، ...، M]` للمدخل وفقًا لـ "الحشوات" لإنتاج "مبطن" للشكل "شكل مبطن".
2. إعادة تشكيل الشكل المبطن إلى الشكل المبطن المعاد تشكيله:
[دفعة] + [padded_shape [1] / block_shape [0]، block_shape [0]، ...، Padded_shape [M] / block_shape [M-1]، block_shape [M-1]] + المتبقي_الشكل
3. تبديل أبعاد "المبطن المعاد تشكيله" لإنتاج "مبطن معاد تشكيله" للشكل:
block_shape + [دفعة] + [padded_shape [1] / block_shape [0]، ...، Padded_shape [M] / block_shape [M-1]] + المتبقي_الشكل
4. أعد تشكيل "مبطن_معاد تشكيله" لتسوية "شكل_الكتلة" في البعد الدفعي، مما يؤدي إلى إنتاج موتر إخراج للشكل:
[دفعة * إنتاج (block_shape)] + [padded_shape [1] / block_shape [0]، ...، Padded_shape [M] / block_shape [M-1]] + المتبقي_الشكل
بعض الأمثلة:
(1) بالنسبة لإدخال الشكل التالي `[1، 2، 2، 1]`، و`block_shape = [2، 2]`، و`الحشوات = [[0، 0]، [0، 0]]`:
x = [[[[1], [2]], [[3], [4]]]]
موتر الإخراج له شكل `[4، 1، 1، 1]` وقيمة: [[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
(2) بالنسبة لإدخال الشكل التالي `[1، 2، 2، 3]`، و`block_shape = [2، 2]`، و`الحشوات = [[0، 0]، [0، 0]]`: x = [[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
موتر الإخراج له شكل `[4، 1، 1، 3]` وقيمة: [[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
(3) بالنسبة لإدخال الشكل التالي `[1، 4، 4، 1]`، و`block_shape = [2، 2]`، و`الحشوات = [[0، 0]، [0، 0]]`: x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]],
[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]]
موتر الإخراج له شكل `[4، 2، 2، 1]` وقيمة: x = [[[[1], [3]], [[9], [11]]],
[[[2], [4]], [[10], [12]]],
[[[5], [7]], [[13], [15]]],
[[[6], [8]], [[14], [16]]]]
(4) بالنسبة لإدخال الشكل التالي `[2، 2، 4، 1]`، block_shape = `[2، 2]`، والحشوات = `[[0، 0]، [2، 0]]`: x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]]],
[[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]]
موتر الإخراج له شكل `[8، 1، 3، 1]` وقيمة: 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]]]]
من بين أمور أخرى، هذه العملية مفيدة لتقليل الالتواء الأذيني إلى التلافيف المنتظم. الأساليب العامة
الإخراج <T> | كإخراج () إرجاع المقبض الرمزي للموتر. |
ثابت <T، U يمتد الرقم، V يمتد الرقم> SpaceToBatchNd <T> | |
الإخراج <T> | الإخراج () |
الطرق الموروثة
الأساليب العامة
الإخراج العام <T> كإخراج ()
إرجاع المقبض الرمزي للموتر.
المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.
إنشاء SpaceToBatchNd <T> ثابت عام (نطاق النطاق ، إدخال المعامل <T>، المعامل <U> blockShape، حشوات المعامل <V>)
طريقة المصنع لإنشاء فئة تلتف حول عملية SpaceToBatchNd جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
مدخل | ND بالشكل `input_shape = [batch] + spatial_shape + المتبقي_shape`، حيث يكون للشكل المكاني أبعاد `M`. |
blockShape | 1-D بالشكل `[M]`، يجب أن تكون جميع القيم >= 1. |
الحشوات | 2-D بالشكل `[M, 2]`، يجب أن تكون جميع القيم >= 0. `paddings[i] = [pad_start,pad_end]` تحدد المساحة المتروكة لبعد الإدخال `i + 1`، والذي يتوافق مع البعد المكاني "أنا". من الضروري أن يقوم `block_shape[i]` بتقسيم `input_shape[i + 1] +pad_start +pad_end`. |
المرتجعات
- مثيل جديد لـ SpaceToBatchNd