نشكرك على متابعة Google I / O. عرض جميع الجلسات عند الطلب مشاهدة عند الطلب

تينسورفلو :: العمليات :: 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.
  • المحاصيل: 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. input إعادة تشكيل لإعادة reshaped الشكل: [block_shape [0]، ...، block_shape [M-1]، دفعة / منتج (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 الشكل [دفعة / همز (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 لإنتاج ناتج الشكل: [دفعة / إنتاج (شكل كتلة) ، شكل إدخال [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 :: Output

 operator::tensorflow::Output() const