本文整理匯總了Python中edward.models.Normal._sample_n方法的典型用法代碼示例。如果您正苦於以下問題:Python Normal._sample_n方法的具體用法?Python Normal._sample_n怎麽用?Python Normal._sample_n使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類edward.models.Normal
的用法示例。
在下文中一共展示了Normal._sample_n方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: AutoRegressive
# 需要導入模塊: from edward.models import Normal [as 別名]
# 或者: from edward.models.Normal import _sample_n [as 別名]
class AutoRegressive(RandomVariable, Distribution):
# a 1-D AR(1) process
# a[t + 1] = a[t] + eps with eps ~ N(0, sig**2)
def __init__(self, T, a, sig, *args, **kwargs):
self.a = a
self.sig = sig
self.T = T
self.shocks = Normal(tf.zeros(T), scale=sig)
self.z = tf.scan(lambda acc, x: self.a * acc + x, self.shocks)
if 'dtype' not in kwargs:
kwargs['dtype'] = tf.float32
if 'allow_nan_stats' not in kwargs:
kwargs['allow_nan_stats'] = False
if 'reparameterization_type' not in kwargs:
kwargs['reparameterization_type'] = FULLY_REPARAMETERIZED
if 'validate_args' not in kwargs:
kwargs['validate_args'] = False
if 'name' not in kwargs:
kwargs['name'] = 'AutoRegressive'
super(AutoRegressive, self).__init__(*args, **kwargs)
self._args = (T, a, sig)
def _log_prob(self, value):
err = value - self.a * tf.pad(value[:-1], [[1, 0]], 'CONSTANT')
lpdf = self.shocks._log_prob(err)
return tf.reduce_sum(lpdf)
def _sample_n(self, n, seed=None):
return tf.scan(lambda acc, x: self.a * acc + x,
self.shocks._sample_n(n, seed))