tensorflow:: אופס:: FractionalMaxPool

#include <nn_ops.h>

מבצע איגום מקסימלי חלקי על הקלט.

סיכום

איגום מקסימלי חלקי שונה במקצת מבריכה מקסימלית רגילה. באיגוד מקסימלי רגיל, אתה מקטין ערכת קלט על ידי לקיחת הערך המקסימלי של N x N תת-סעיפים קטנים יותר של הקבוצה (לעיתים קרובות 2x2), ומנסה להקטין את הסט בפקטור של N, כאשר N הוא מספר שלם. איגום מקסימלי חלקי, כפי שניתן לצפות מהמילה "שברית", אומר שיחס ההפחתה הכולל N אינו חייב להיות מספר שלם.

הגדלים של אזורי האיגום נוצרים באופן אקראי אך הם די אחידים. לדוגמה, בואו נסתכל על ממד הגובה, ואת האילוצים ברשימת השורות שיהוו גבולות בריכות.

ראשית אנו מגדירים את הדברים הבאים:

  1. input_row_length : מספר השורות מקבוצת הקלט
  2. output_row_length : שיהיה קטן מהקלט
  3. alpha = input_row_length / output_row_length : יחס ההפחתה שלנו
  4. K = קומה (אלפא)
  5. row_pooling_sequence : זוהי רשימת התוצאות של שורות גבול הבריכה

לאחר מכן, row_pooling_sequence אמור לספק את:

  1. a[0] = 0 : הערך הראשון של הרצף הוא 0
  2. a[end] = input_row_length : הערך האחרון של הרצף הוא הגודל
  3. K <= (a[i+1] - a[i]) <= K+1 : כל המרווחים הם בגודל K או K+1
  4. length(row_pooling_sequence) = output_row_length+1

לפרטים נוספים על איגום מקסימלי חלקי, ראה מאמר זה: בנג'מין גרהם, איסוף מקסימלי חלקי

טיעונים:

  • scope: אובייקט Scope
  • ערך: 4-D עם צורה [batch, height, width, channels] .
  • pooling_ratio: יחס איגום עבור כל ממד של value , תומך כרגע רק בממד שורה וקול ועליו להיות >= 1.0. לדוגמה, יחס איגום חוקי נראה כמו [1.0, 1.44, 1.73, 1.0]. הרכיבים הראשונים והאחרונים חייבים להיות 1.0 מכיוון שאנו לא מאפשרים איחוד על מידות אצווה וערוצים. 1.44 ו-1.73 הם יחס איסוף על מידות גובה ורוחב בהתאמה.

מאפיינים אופציונליים (ראה Attrs ):

  • pseudo_random: כאשר הוא מוגדר כ-True, יוצר את רצף האיגום בצורה פסאודו אקראית, אחרת, בצורה אקראית. בדוק בנייר Benjamin Graham, Fractional Max-Pooling עבור ההבדל בין פסאודורנדום לאקראי.
  • חופפים: כאשר מוגדר כ-True, פירוש הדבר בעת איגום, הערכים בגבול תאי האיגום הסמוכים משמשים את שני התאים. לדוגמה:

index 0 1 2 3 4

value 20 5 16 3 7

אם רצף האיגום הוא [0, 2, 4], אז 16, באינדקס 2 ישמש פעמיים. התוצאה תהיה [20, 16] עבור איגום מרבי חלקי.

  • דטרמיניסטי: כאשר הוא מוגדר כ-True, אזור איגום קבוע ישמש בעת איטרציה על צומת FractionalMaxPool בגרף החישוב. משמש בעיקר בבדיקת יחידה כדי להפוך את FractionalMaxPool לדטרמיניסטי.
  • seed: אם ה-seed או seed2 מוגדרים כלא-אפס, מחולל המספרים האקראיים מוזרע על ידי ה-seed הנתון. אחרת, הוא נזרע על ידי זרע אקראי.
  • seed2: זרע שני כדי למנוע התנגשות זרע.

החזרות:

  • פלט 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)

מבנים

tensorflow:: ops:: FractionalMaxPool:: Attrs

קובעי תכונות אופציונליים עבור FractionalMaxPool .

תכונות ציבוריות

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

מבצע

Operation operation

תְפוּקָה

::tensorflow::Output output

row_pooling_sequence

::tensorflow::Output row_pooling_sequence

תפקידים ציבוריים

FractionalMaxPool

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

FractionalMaxPool

 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
)

PseudoRandom

Attrs PseudoRandom(
  bool x
)

זֶרַע

Attrs Seed(
  int64 x
)

זרע 2

Attrs Seed2(
  int64 x
)