tfp.substrates.numpy.stats.assign_log_moving_mean_exp
Stay organized with collections
Save and categorize content based on your preferences.
Compute the log of the exponentially weighted moving mean of the exp.
tfp.substrates.numpy.stats.assign_log_moving_mean_exp(
log_value,
moving_log_mean_exp,
zero_debias_count=None,
decay=0.99,
name=None
)
If log_value
is a draw from a stationary random variable, this function
approximates log(E[exp(log_value)])
, i.e., a weighted log-sum-exp. More
precisely, a tf.Variable
, moving_log_mean_exp
, is updated by log_value
using the following identity:
moving_log_mean_exp =
= log(decay exp(moving_log_mean_exp) + (1 - decay) exp(log_value))
= log(exp(moving_log_mean_exp + log(decay)) + exp(log_value + log1p(-decay)))
= moving_log_mean_exp
+ log( exp(moving_log_mean_exp - moving_log_mean_exp + log(decay))
+ exp(log_value - moving_log_mean_exp + log1p(-decay)))
= moving_log_mean_exp
+ log_sum_exp([log(decay), log_value - moving_log_mean_exp +
log1p(-decay)]).
In addition to numerical stability, this formulation is advantageous because
moving_log_mean_exp
can be updated in a lock-free manner, i.e., using
assign_add
. (Note: the updates are not thread-safe; it's just that the
update to the tf.Variable is presumed efficient due to being lock-free.)
Args |
log_value
|
float -like Tensor representing a new (streaming) observation.
Same shape as moving_log_mean_exp .
|
moving_log_mean_exp
|
float -like Variable representing the log of the
exponentially weighted moving mean of the exp. Same shape as log_value .
|
zero_debias_count
|
int -like tf.Variable representing the number of times
this function has been called on streaming input (not the number of
reduced values used in this functions computation). When not None (the
default) the returned values for moving_mean and moving_variance are
"zero debiased", i.e., corrected for their presumed all zeros
intialization. Note: the tf.Variable s moving_mean and
moving_variance always store the unbiased calculation, regardless of
setting this argument. To obtain unbiased calculations from these
tf.Variable s, see tfp.stats.moving_mean_variance_zero_debiased .
Default value: None (i.e., no zero debiasing calculation is made).
|
decay
|
A float -like Tensor representing the moving mean decay. Typically
close to 1. , e.g., 0.99 .
Default value: 0.99 .
|
name
|
Python str prepended to op names created by this function.
Default value: None (i.e., 'assign_log_moving_mean_exp').
|
Returns |
moving_log_mean_exp
|
A reference to the input 'Variable' tensor with the
log_value -updated log of the exponentially weighted moving mean of exp.
|
Raises |
TypeError
|
if moving_log_mean_exp does not have float type dtype .
|
TypeError
|
if moving_log_mean_exp , log_value , decay have different
base_dtype .
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-11-21 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-11-21 UTC."],[],[]]