עזרה להגן על שונית המחסום הגדולה עם TensorFlow על Kaggle הצטרפו אתגר

זרימת טנסור :: אופ :: SparseApplyCenteredRMSProp

#include <training_ops.h>

עדכן את '* var' בהתאם לאלגוריתם RMSProp המרוכז.

סיכום

האלגוריתם המרוכז של RMSProp משתמש באומדן של הרגע השני המרוכז (כלומר השונות) לנורמליזציה, בניגוד ל- RMSProp הרגיל, המשתמש ברגע השני (ללא מרכז). זה עוזר לעתים קרובות באימונים, אך הוא מעט יקר יותר מבחינת חישוב וזיכרון.

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

ריבוע ממוצע = ריקבון * ריבוע ממוצע + (1-ריקבון) * שיפוע ** 2 ממוצע_דרג = ריקבון * ממוצע_דרג + (ריקבון אחד) * שיפוע דלתא = שיעור_למידה * שיפוע / sqrt (ממוצע_רבוע + אפסילון - ממוצע דרגה ** 2)

$$ms <- rho * ms_{t-1} + (1-rho) * grad * grad$$
$$mom <- momentum * mom_{t-1} + lr * grad / sqrt(ms + epsilon)$$
$$var <- var - mom$$

טענות:

  • היקף: אובייקט Scope
  • var: צריך להיות מתוך משתנה ().
  • מ"ג: צריך להיות משתנה ().
  • ms: צריך להיות מתוך משתנה ().
  • אמא: צריכה להיות משתנה ().
  • lr: גורם שינוי גודל. חייב להיות סקלרי.
  • rho: שיעור דעיכה. חייב להיות סקלרי.
  • אפסילון: מונח רכס. חייב להיות סקלרי.
  • דרגה: השיפוע.
  • מדדים: וקטור של מדדים לממד הראשון של var, ms ו- mom.

תכונות אופציונליות (ראה Attrs ):

  • use_locking: אם True , עדכון של טנזורי ה- var, mg, ms ו- mom מוגן באמצעות נעילה; אחרת ההתנהגות אינה מוגדרת, אך עשויה להפגין פחות מחלוקת.

החזרות:

קונסטרוקטורים ומשחתנים

SparseApplyCenteredRMSProp (const :: tensorflow::Scope & scope, :: tensorflow::Input var, :: tensorflow::Input mg, :: tensorflow::Input ms, :: tensorflow::Input mom, :: tensorflow::Input lr, :: tensorflow::Input rho, :: tensorflow::Input momentum, :: tensorflow::Input epsilon, :: tensorflow::Input grad, :: tensorflow::Input indices)
SparseApplyCenteredRMSProp (const :: tensorflow::Scope & scope, :: tensorflow::Input var, :: tensorflow::Input mg, :: tensorflow::Input ms, :: tensorflow::Input mom, :: tensorflow::Input lr, :: tensorflow::Input rho, :: tensorflow::Input momentum, :: tensorflow::Input epsilon, :: tensorflow::Input grad, :: tensorflow::Input indices, const SparseApplyCenteredRMSProp::Attrs & attrs)

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

operation
out

פונקציות ציבוריות

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

פונקציות סטטיות ציבוריות

UseLocking (bool x)

סטרוקטורים

tensorflow :: ops :: SparseApplyCenteredRMSProp :: Attrs

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

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

מבצע

Operation operation

הַחוּצָה

::tensorflow::Output out

פונקציות ציבוריות

SparseApplyCenteredRMSProp

 SparseApplyCenteredRMSProp(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input var,
  ::tensorflow::Input mg,
  ::tensorflow::Input ms,
  ::tensorflow::Input mom,
  ::tensorflow::Input lr,
  ::tensorflow::Input rho,
  ::tensorflow::Input momentum,
  ::tensorflow::Input epsilon,
  ::tensorflow::Input grad,
  ::tensorflow::Input indices
)

SparseApplyCenteredRMSProp

 SparseApplyCenteredRMSProp(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input var,
  ::tensorflow::Input mg,
  ::tensorflow::Input ms,
  ::tensorflow::Input mom,
  ::tensorflow::Input lr,
  ::tensorflow::Input rho,
  ::tensorflow::Input momentum,
  ::tensorflow::Input epsilon,
  ::tensorflow::Input grad,
  ::tensorflow::Input indices,
  const SparseApplyCenteredRMSProp::Attrs & attrs
)

צוֹמֶת

::tensorflow::Node * node() const 

אופרטור :: זרימת טנסור :: קלט

 operator::tensorflow::Input() const 

אופרטור :: זרימת טנסור :: פלט

 operator::tensorflow::Output() const 

פונקציות סטטיות ציבוריות

UseLocking

Attrs UseLocking(
  bool x
)