टेंसरफ़्लो:: ऑप्स:: फ्रैक्शनलमैक्सपूल

#include <nn_ops.h>

इनपुट पर आंशिक अधिकतम पूलिंग करता है।

सारांश

फ्रैक्शनल अधिकतम पूलिंग नियमित अधिकतम पूलिंग से थोड़ा अलग है। नियमित अधिकतम पूलिंग में, आप सेट के छोटे एन एक्स एन उपखंडों (अक्सर 2x2) का अधिकतम मान लेकर एक इनपुट सेट को छोटा कर देते हैं, और एन के एक कारक द्वारा सेट को कम करने का प्रयास करते हैं, जहां एन एक पूर्णांक है। फ्रैक्शनल अधिकतम पूलिंग, जैसा कि आप "फ्रैक्शनल" शब्द से उम्मीद कर सकते हैं, का अर्थ है कि समग्र कमी अनुपात एन का पूर्णांक होना जरूरी नहीं है।

पूलिंग क्षेत्रों के आकार यादृच्छिक रूप से उत्पन्न होते हैं लेकिन काफी समान होते हैं। उदाहरण के लिए, आइए ऊंचाई आयाम और पंक्तियों की सूची पर बाधाओं को देखें जो पूल सीमाएं होंगी।

पहले हम निम्नलिखित को परिभाषित करते हैं:

  1. इनपुट_रो_लेंथ : इनपुट सेट से पंक्तियों की संख्या
  2. आउटपुट_रो_लेंथ : जो इनपुट से छोटा होगा
  3. अल्फ़ा = इनपुट_रो_लेंथ / आउटपुट_रो_लेंथ : हमारा कमी अनुपात
  4. के = मंजिल (अल्फा)
  5. row_pooling_sequence : यह पूल सीमा पंक्तियों की परिणाम सूची है

फिर, row_pooling_sequence को संतुष्ट करना चाहिए:

  1. a[0] = 0 : अनुक्रम का पहला मान 0 है
  2. a[end] = इनपुट_रो_लेंथ : अनुक्रम का अंतिम मान आकार है
  3. K <= (a[i+1] - a[i]) <= K+1 : सभी अंतराल K या K+1 आकार के हैं
  4. लंबाई(पंक्ति_पूलिंग_अनुक्रम) = आउटपुट_रो_लंबाई+1

फ्रैक्शनल मैक्स पूलिंग पर अधिक जानकारी के लिए, यह पेपर देखें: बेंजामिन ग्राहम, फ्रैक्शनल मैक्स-पूलिंग

तर्क:

  • स्कोप: एक स्कोप ऑब्जेक्ट
  • मान: आकार के साथ 4-डी [batch, height, width, channels]
  • पूलिंग_अनुपात: value के प्रत्येक आयाम के लिए पूलिंग अनुपात, वर्तमान में केवल पंक्ति और कॉलम आयाम का समर्थन करता है और >= 1.0 होना चाहिए। उदाहरण के लिए, एक वैध पूलिंग अनुपात [1.0, 1.44, 1.73, 1.0] जैसा दिखता है। पहला और अंतिम तत्व 1.0 होना चाहिए क्योंकि हम बैच और चैनल आयामों पर पूलिंग की अनुमति नहीं देते हैं। 1.44 और 1.73 क्रमशः ऊंचाई और चौड़ाई आयामों पर पूलिंग अनुपात हैं।

वैकल्पिक विशेषताएँ (देखें Attrs ):

  • छद्म_यादृच्छिक: जब सही पर सेट किया जाता है, तो पूलिंग अनुक्रम को छद्मयादृच्छिक तरीके से उत्पन्न करता है, अन्यथा, यादृच्छिक तरीके से। छद्म यादृच्छिक और यादृच्छिक के बीच अंतर के लिए पेपर बेंजामिन ग्राहम, फ्रैक्शनल मैक्स-पूलिंग की जाँच करें।
  • ओवरलैपिंग: जब सही पर सेट किया जाता है, तो इसका मतलब है कि पूलिंग करते समय, आसन्न पूलिंग कोशिकाओं की सीमा पर मानों का उपयोग दोनों कोशिकाओं द्वारा किया जाता है। उदाहरण के लिए:

index 0 1 2 3 4

value 20 5 16 3 7

यदि पूलिंग अनुक्रम [0, 2, 4] है, तो सूचकांक 2 पर 16 का दो बार उपयोग किया जाएगा। आंशिक अधिकतम पूलिंग के लिए परिणाम [20, 16] होगा।

  • नियतात्मक: जब सही पर सेट किया जाता है, तो गणना ग्राफ़ में फ्रैक्शनलमैक्सपूल नोड पर पुनरावृत्ति करते समय एक निश्चित पूलिंग क्षेत्र का उपयोग किया जाएगा। FractionalMaxPool को नियतात्मक बनाने के लिए मुख्य रूप से यूनिट परीक्षण में उपयोग किया जाता है।
  • बीज: यदि बीज या बीज 2 को गैर-शून्य पर सेट किया गया है, तो यादृच्छिक संख्या जनरेटर को दिए गए बीज द्वारा बीजित किया जाता है। अन्यथा, यह एक यादृच्छिक बीज द्वारा बोया जाता है।
  • बीज 2: बीज टकराव से बचने के लिए दूसरा बीज।

रिटर्न:

  • Output आउटपुट: भिन्नात्मक अधिकतम पूलिंग के बाद आउटपुट टेंसर।
  • Output row_pooling_sequence: पंक्ति पूलिंग अनुक्रम, ग्रेडिएंट की गणना करने के लिए आवश्यक है।
  • Output col_pooling_sequence: कॉलम पूलिंग अनुक्रम, ग्रेडिएंट की गणना करने के लिए आवश्यक।

निर्माता और विध्वंसक

FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio)
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs)

सार्वजनिक गुण

col_pooling_sequence
operation
output
row_pooling_sequence

सार्वजनिक स्थैतिक कार्य

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

संरचनाएँ

टेंसरफ्लो:: ऑप्स:: फ्रैक्शनलमैक्सपूल:: एटर्स

FractionalMaxPool के लिए वैकल्पिक विशेषता सेटर।

सार्वजनिक गुण

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

संचालन

Operation operation

आउटपुट

::tensorflow::Output output

row_pooling_sequence

::tensorflow::Output row_pooling_sequence

सार्वजनिक समारोह

फ्रैक्शनलमैक्सपूल

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio
)

फ्रैक्शनलमैक्सपूल

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio,
  const FractionalMaxPool::Attrs & attrs
)

सार्वजनिक स्थैतिक कार्य

नियतिवादी

Attrs Deterministic(
  bool x
)

ओवरलैपिंग

Attrs Overlapping(
  bool x
)

कूट-यादृच्छिक

Attrs PseudoRandom(
  bool x
)

बीज

Attrs Seed(
  int64 x
)

बीज2

Attrs Seed2(
  int64 x
)