本文整理汇总了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))