टेंसरफ़्लो:: ऑप्स:: बैचटूस्पेसएनडी

#include <array_ops.h>

प्रकार टी के एनडी टेंसर के लिए बैचटूस्पेस।

सारांश

यह ऑपरेशन "बैच" आयाम 0 को M + 1 आयाम block_shape + [batch] में दोबारा आकार देता है, इन ब्लॉकों को स्थानिक आयामों [1, ..., M] द्वारा परिभाषित ग्रिड में वापस छोड़ देता है, ताकि परिणाम प्राप्त हो सके। इनपुट के समान रैंक। इस मध्यवर्ती परिणाम के स्थानिक आयामों को आउटपुट उत्पन्न करने के लिए crops के अनुसार वैकल्पिक रूप से काटा जाता है। यह SpaceToBatch का उल्टा है। सटीक विवरण के लिए नीचे देखें।

तर्क:

  • स्कोप: एक स्कोप ऑब्जेक्ट
  • इनपुट: एनडी आकार के साथ input_shape = [batch] + spatial_shape + remaining_shape , जहां स्थानिक_आकार में एम आयाम हैं।
  • ब्लॉक_शेप: आकार [M] के साथ 1-डी, सभी मान >= 1 होने चाहिए।
  • फसलें: 2-डी आकार के साथ [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. आकार को दोबारा reshaped के लिए input दोबारा आकार दें: [ब्लॉक_शेप[0], ..., ब्लॉक_शेप[एम-1], बैच/प्रोड(ब्लॉक_शेप), इनपुट_शेप[1], ..., इनपुट_शेप[एन-1]]
  2. आकार के permuted उत्पादन के लिए पुन reshaped के आयामों को क्रमबद्ध करें [बैच / उत्पाद (ब्लॉक_शेप), इनपुट_शेप[1], ब्लॉक_शेप[0], ..., इनपुट_शेप[एम], ब्लॉक_शेप[एम-1],इनपुट_शेप[एम+1], ..., इनपुट_आकार[एन-1]]
  3. आकार के पुन: reshaped_permuted का उत्पादन करने के लिए permuted [बैच / उत्पाद (ब्लॉक_शेप), इनपुट_शेप [1] * ब्लॉक_शेप [0], ..., इनपुट_शेप [एम] * ब्लॉक_शेप [एम -1], इनपुट_शेप [एम + 1], .. ., इनपुट_आकार[एन-1]]
  4. आकार का आउटपुट उत्पन्न करने के लिए crops के अनुसार reshaped_permuted आयामों [1, ..., M] के प्रारंभ और अंत को काटें: [बैच / प्रोड (ब्लॉक_शेप), इनपुट_शेप [1] * ब्लॉक_शेप [0] - फसलें [0, 0] - फसलें[0,1], ..., इनपुट_आकार[एम] * ब्लॉक_आकार[एम-1] - फसलें[एम-1,0] - फसलें[एम-1,1],इनपुट_आकार[एम+1] , ..., इनपुट_शेप[एन-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(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input block_shape,
  ::tensorflow::Input crops
)

नोड

::tensorflow::Node * node() const 

ऑपरेटर::टेन्सरफ़्लो::इनपुट

 operator::tensorflow::Input() const 

ऑपरेटर::टेन्सरफ़्लो::आउटपुट

 operator::tensorflow::Output() const