יום הקהילה ML הוא 9 בנובמבר! הצטרפו אלינו עדכונים מ- TensorFlow, JAX, ועוד למידע נוסף

זרימת טנסור :: אופ :: 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: זו רשימת התוצאות של שורות גבול הבריכה

לאחר מכן, שורה_בריכה_השלכה אמורה לספק:

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

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

טענות:

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

index 0 1 2 3 4

value 20 5 16 3 7

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

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

שורה_בריכה_השלכה

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