當前位置: 首頁>>代碼示例>>Python>>正文


Python Normal._sample_n方法代碼示例

本文整理匯總了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))
開發者ID:JoyceYa,項目名稱:edward,代碼行數:35,代碼來源:ar_process_test.py


注:本文中的edward.models.Normal._sample_n方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。