टेंसरफ़्लो:: ऑप्स:: बैचटूस्पेसएनडी
#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]
यह ऑपरेशन निम्नलिखित चरणों के बराबर है:
- आकार को दोबारा
reshapedके लिएinputदोबारा आकार दें: [ब्लॉक_शेप[0], ..., ब्लॉक_शेप[एम-1], बैच/प्रोड(ब्लॉक_शेप), इनपुट_शेप[1], ..., इनपुट_शेप[एन-1]] - आकार के
permutedउत्पादन के लिए पुनreshapedके आयामों को क्रमबद्ध करें [बैच / उत्पाद (ब्लॉक_शेप), इनपुट_शेप[1], ब्लॉक_शेप[0], ..., इनपुट_शेप[एम], ब्लॉक_शेप[एम-1],इनपुट_शेप[एम+1], ..., इनपुट_आकार[एन-1]] - आकार के पुन:
reshaped_permutedका उत्पादन करने के लिएpermuted[बैच / उत्पाद (ब्लॉक_शेप), इनपुट_शेप [1] * ब्लॉक_शेप [0], ..., इनपुट_शेप [एम] * ब्लॉक_शेप [एम -1], इनपुट_शेप [एम + 1], .. ., इनपुट_आकार[एन-1]] - आकार का आउटपुट उत्पन्न करने के लिए
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