View source on GitHub |
Computes a running mean.
Inherits From: AutoCompositeTensor
tfp.experimental.stats.RunningMean(
num_samples, mean
)
In computation, samples can be provided individually or in chunks. A "chunk" of size M implies incorporating M samples into a single expectation computation at once, which is more efficient than one by one.
RunningMean
is meant to serve general streaming expectations.
For a specialized version that fits streaming over MCMC samples, see
ExpectationsReducer
in tfp.experimental.mcmc
.
Args | |
---|---|
num_samples
|
A Tensor counting the number of samples
accumulated so far.
|
mean
|
A Tensor broadcast-compatible with num_samples giving the
current mean.
|
Methods
from_example
@classmethod
from_example( example )
Initialize an empty RunningMean
.
Args | |
---|---|
example
|
A Tensor . The RunningMean will accept samples
of the same dtype and broadcast-compatible shape as the example.
|
Returns | |
---|---|
state
|
RunningMean representing a stream of no inputs. Note
that by convention, the supplied example is used only for
initialization, but not counted as a sample.
|
from_shape
@classmethod
from_shape( shape, dtype=tf.float32 )
Initialize an empty RunningMean
.
Args | |
---|---|
shape
|
Python Tuple or TensorShape representing the shape of
incoming samples.
|
dtype
|
Dtype of incoming samples and the resulting statistics.
By default, the dtype is tf.float32 . Any integer dtypes will be
cast to corresponding floats (i.e. tf.int32 will be cast to
tf.float32 ), as intermediate calculations should be performing
floating-point division.
|
Returns | |
---|---|
state
|
RunningMean representing a stream of no inputs.
|
tree_flatten
tree_flatten()
tree_unflatten
@classmethod
tree_unflatten( _, tensors )
update
update(
new_sample, axis=None
)
Update the RunningMean
with a new sample.
The update formula is from Philippe Pebay (2008) [1] and is identical to
that used to calculate the intermediate mean in
tfp.experimental.stats.RunningCovariance
and
tfp.experimental.stats.RunningVariance
.
Args | |
---|---|
new_sample
|
Incoming Tensor sample with shape and dtype compatible with
those used to form the RunningMean .
|
axis
|
If chunking is desired, this is an integer that specifies the axis
with chunked samples. For individual samples, set this to None . By
default, samples are not chunked (axis is None).
|
Returns | |
---|---|
mean
|
RunningMean updated to the new sample.
|
References
[1]: Philippe Pebay. Formulas for Robust, One-Pass Parallel Computation of Covariances and Arbitrary-Order Statistical Moments. Technical Report SAND2008-6212, 2008. https://prod-ng.sandia.gov/techlib-noauth/access-control.cgi/2008/086212.pdf