tensorflow:: ops:: 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. אורך(רצף_איגום_שורות) = אורך_שורות_פלט+1

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

טיעונים:

  • היקף: אובייקט היקף
  • ערך: 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, נוצר רצף האיגום בצורה פסאודו-אקראית, אחרת, באופן אקראי. עיין במאמר של בנג'מין גרהם, 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 הנתון. אחרת, הוא נזרע על ידי 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 .

מאפיינים ציבוריים

רצף_איגום_העמודות

::tensorflow::Output col_pooling_sequence

מִבצָע

Operation operation

תְפוּקָה

::tensorflow::Output output

רצף_איגום_שורות

::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
)