• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python tensorflow.lbeta函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中tensorflow.lbeta函数的典型用法代码示例。如果您正苦于以下问题:Python lbeta函数的具体用法?Python lbeta怎么用?Python lbeta使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了lbeta函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: entropy

    def entropy(self, alpha):
        """Entropy of probability distribution.

        Parameters
        ----------
        alpha : tf.Tensor
            A n-D tensor with each :math:`\\alpha` constrained to
            :math:`\\alpha_i > 0`.

        Returns
        -------
        tf.Tensor
            A tensor of one dimension less than the input.
        """
        alpha = tf.cast(alpha, dtype=tf.float32)
        multivariate_idx = len(get_dims(alpha)) - 1
        K = get_dims(alpha)[multivariate_idx]
        if multivariate_idx == 0:
            a = tf.reduce_sum(alpha)
            return tf.lbeta(alpha) + \
                   (a - K) * tf.digamma(a) - \
                   tf.reduce_sum((alpha-1.0) * tf.digamma(alpha))
        else:
            a = tf.reduce_sum(alpha, multivariate_idx)
            return tf.lbeta(alpha) + \
                   (a - K) * tf.digamma(a) - \
                   tf.reduce_sum((alpha-1.0) * tf.digamma(alpha), multivariate_idx)
开发者ID:TalkingData,项目名称:edward,代码行数:27,代码来源:distributions.py


示例2: logpdf

    def logpdf(self, x, alpha):
        """Log of the probability density function.

        Parameters
        ----------
        x : tf.Tensor
            A n-D tensor for n > 1, where the inner (right-most)
            dimension represents the multivariate dimension.
        alpha : tf.Tensor
            A tensor of same shape as ``x``, and with each
            :math:`\\alpha` constrained to :math:`\\alpha_i > 0`.

        Returns
        -------
        tf.Tensor
            A tensor of one dimension less than the input.
        """
        x = tf.cast(x, dtype=tf.float32)
        alpha = tf.cast(alpha, dtype=tf.float32)
        multivariate_idx = len(get_dims(x)) - 1
        if multivariate_idx == 0:
            return -tf.lbeta(alpha) + tf.reduce_sum((alpha-1.0) * tf.log(x))
        else:
            return -tf.lbeta(alpha) + \
                   tf.reduce_sum((alpha-1.0) * tf.log(x), multivariate_idx)
开发者ID:TalkingData,项目名称:edward,代码行数:25,代码来源:distributions.py


示例3: test_two_dimensional_proper_shape

 def test_two_dimensional_proper_shape(self):
   # Should evaluate to 1/2.
   x_one_half = [[2, 1.], [2, 1.]]
   with self.test_session(use_gpu=self._use_gpu):
     self.assertAllClose([0.5, 0.5], tf.exp(tf.lbeta(x_one_half)).eval())
     self.assertEqual((2,), tf.shape(tf.lbeta(x_one_half)).eval())
     self.assertEqual(tf.TensorShape([2]), tf.lbeta(x_one_half).get_shape())
开发者ID:curtiszimmerman,项目名称:tensorflow,代码行数:7,代码来源:special_math_ops_test.py


示例4: test_one_dimensional_arg

 def test_one_dimensional_arg(self):
   # Should evaluate to 1 and 1/2.
   x_one = [1, 1.]
   x_one_half = [2, 1.]
   with self.test_session(use_gpu=self._use_gpu):
     self.assertAllClose(1, tf.exp(tf.lbeta(x_one)).eval())
     self.assertAllClose(0.5, tf.exp(tf.lbeta(x_one_half)).eval())
     self.assertEqual([], tf.lbeta(x_one).get_shape())
开发者ID:0-T-0,项目名称:tensorflow,代码行数:8,代码来源:special_math_ops_test.py


示例5: test_length_1_last_dimension_results_in_one

 def test_length_1_last_dimension_results_in_one(self):
   # If there is only one coefficient, the formula still works, and we get one
   # as the answer, always.
   x_a = [5.5]
   x_b = [0.1]
   with self.test_session(use_gpu=self._use_gpu):
     self.assertAllClose(1, tf.exp(tf.lbeta(x_a)).eval())
     self.assertAllClose(1, tf.exp(tf.lbeta(x_b)).eval())
     self.assertEqual((), tf.lbeta(x_a).get_shape())
开发者ID:0-T-0,项目名称:tensorflow,代码行数:9,代码来源:special_math_ops_test.py


示例6: test_two_dimensional_arg_dynamic_alloc

 def test_two_dimensional_arg_dynamic_alloc(self):
   # Should evaluate to 1/2.
   x_one_half = [[2, 1.], [2, 1.]]
   with self.test_session(use_gpu=self._use_gpu):
     ph = tf.placeholder(tf.float32)
     beta_ph = tf.exp(tf.lbeta(ph))
     self.assertAllClose([0.5, 0.5], beta_ph.eval(feed_dict={ph: x_one_half}))
开发者ID:0-T-0,项目名称:tensorflow,代码行数:7,代码来源:special_math_ops_test.py


示例7: _entropy

 def _entropy(self):
   v = tf.ones(self.batch_shape_tensor(),
               dtype=self.dtype)[..., tf.newaxis]
   u = v * self.df[..., tf.newaxis]
   beta_arg = tf.concat([u, v], -1) / 2.
   return (tf.log(tf.abs(self.scale)) +
           0.5 * tf.log(self.df) +
           tf.lbeta(beta_arg) +
           0.5 * (self.df + 1.) *
           (tf.digamma(0.5 * (self.df + 1.)) -
            tf.digamma(0.5 * self.df)))
开发者ID:asudomoeva,项目名称:probability,代码行数:11,代码来源:student_t.py


示例8: _moment

 def _moment(self, n):
   """Compute the n'th (uncentered) moment."""
   total_concentration = self.concentration1 + self.concentration0
   expanded_concentration1 = tf.ones_like(
       total_concentration, dtype=self.dtype) * self.concentration1
   expanded_concentration0 = tf.ones_like(
       total_concentration, dtype=self.dtype) * self.concentration0
   beta_arg0 = 1 + n / expanded_concentration1
   beta_arg = tf.stack([beta_arg0, expanded_concentration0], -1)
   log_moment = tf.log(expanded_concentration0) + tf.lbeta(beta_arg)
   return tf.exp(log_moment)
开发者ID:lewisKit,项目名称:probability,代码行数:11,代码来源:kumaraswamy.py


示例9: test_empty_rank2_or_greater_input_gives_empty_output_dynamic_alloc

 def test_empty_rank2_or_greater_input_gives_empty_output_dynamic_alloc(self):
   with self.test_session(use_gpu=self._use_gpu):
     ph = tf.placeholder(tf.float32)
     self.assertAllEqual([], tf.lbeta(ph).eval(feed_dict={ph: [[]]}))
     self.assertAllEqual([[]], tf.lbeta(ph).eval(feed_dict={ph: [[[]]]}))
开发者ID:0-T-0,项目名称:tensorflow,代码行数:5,代码来源:special_math_ops_test.py


示例10: test_empty_rank2_or_greater_input_gives_empty_output

 def test_empty_rank2_or_greater_input_gives_empty_output(self):
   with self.test_session(use_gpu=self._use_gpu):
     self.assertAllEqual([], tf.lbeta([[]]).eval())
     self.assertEqual((0,), tf.lbeta([[]]).get_shape())
     self.assertAllEqual([[]], tf.lbeta([[[]]]).eval())
     self.assertEqual((1, 0), tf.lbeta([[[]]]).get_shape())
开发者ID:0-T-0,项目名称:tensorflow,代码行数:6,代码来源:special_math_ops_test.py


示例11: test_complicated_shape

 def test_complicated_shape(self):
   with self.test_session(use_gpu=self._use_gpu):
     x = tf.convert_to_tensor(np.random.rand(3, 2, 2))
     self.assertAllEqual((3, 2), tf.shape(tf.lbeta(x)).eval())
     self.assertEqual(tf.TensorShape([3, 2]), tf.lbeta(x).get_shape())
开发者ID:curtiszimmerman,项目名称:tensorflow,代码行数:5,代码来源:special_math_ops_test.py


示例12: _kl_dirichlet_dirichlet

def _kl_dirichlet_dirichlet(d1, d2, name=None):
  """Batchwise KL divergence KL(d1 || d2) with d1 and d2 Dirichlet.

  Args:
    d1: instance of a Dirichlet distribution object.
    d2: instance of a Dirichlet distribution object.
    name: (optional) Name to use for created operations.
      default is "kl_dirichlet_dirichlet".

  Returns:
    Batchwise KL(d1 || d2)
  """
  with tf.name_scope(name, "kl_dirichlet_dirichlet", values=[
      d1.concentration, d2.concentration]):
    # The KL between Dirichlet distributions can be derived as follows. We have
    #
    #   Dir(x; a) = 1 / B(a) * prod_i[x[i]^(a[i] - 1)]
    #
    # where B(a) is the multivariate Beta function:
    #
    #   B(a) = Gamma(a[1]) * ... * Gamma(a[n]) / Gamma(a[1] + ... + a[n])
    #
    # The KL is
    #
    #   KL(Dir(x; a), Dir(x; b)) = E_Dir(x; a){log(Dir(x; a) / Dir(x; b))}
    #
    # so we'll need to know the log density of the Dirichlet. This is
    #
    #   log(Dir(x; a)) = sum_i[(a[i] - 1) log(x[i])] - log B(a)
    #
    # The only term that matters for the expectations is the log(x[i]). To
    # compute the expectation of this term over the Dirichlet density, we can
    # use the following facts about the Dirichlet in exponential family form:
    #   1. log(x[i]) is a sufficient statistic
    #   2. expected sufficient statistics (of any exp family distribution) are
    #      equal to derivatives of the log normalizer with respect to
    #      corresponding natural parameters: E{T[i](x)} = dA/d(eta[i])
    #
    # To proceed, we can rewrite the Dirichlet density in exponential family
    # form as follows:
    #
    #   Dir(x; a) = exp{eta(a) . T(x) - A(a)}
    #
    # where '.' is the dot product of vectors eta and T, and A is a scalar:
    #
    #   eta[i](a) = a[i] - 1
    #     T[i](x) = log(x[i])
    #        A(a) = log B(a)
    #
    # Now, we can use fact (2) above to write
    #
    #   E_Dir(x; a)[log(x[i])]
    #       = dA(a) / da[i]
    #       = d/da[i] log B(a)
    #       = d/da[i] (sum_j lgamma(a[j])) - lgamma(sum_j a[j])
    #       = digamma(a[i])) - digamma(sum_j a[j])
    #
    # Putting it all together, we have
    #
    # KL[Dir(x; a) || Dir(x; b)]
    #     = E_Dir(x; a){log(Dir(x; a) / Dir(x; b)}
    #     = E_Dir(x; a){sum_i[(a[i] - b[i]) log(x[i])} - (lbeta(a) - lbeta(b))
    #     = sum_i[(a[i] - b[i]) * E_Dir(x; a){log(x[i])}] - lbeta(a) + lbeta(b)
    #     = sum_i[(a[i] - b[i]) * (digamma(a[i]) - digamma(sum_j a[j]))]
    #          - lbeta(a) + lbeta(b))

    digamma_sum_d1 = tf.digamma(
        tf.reduce_sum(d1.concentration, axis=-1, keepdims=True))
    digamma_diff = tf.digamma(d1.concentration) - digamma_sum_d1
    concentration_diff = d1.concentration - d2.concentration

    return (tf.reduce_sum(concentration_diff * digamma_diff, axis=-1) -
            tf.lbeta(d1.concentration) +
            tf.lbeta(d2.concentration))
开发者ID:asudomoeva,项目名称:probability,代码行数:74,代码来源:dirichlet.py


示例13: test_empty_rank1_input_raises_value_error

 def test_empty_rank1_input_raises_value_error(self):
   with self.test_session(use_gpu=self._use_gpu):
     with self.assertRaisesRegexp(ValueError, 'rank'):
       tf.lbeta([])
开发者ID:0-T-0,项目名称:tensorflow,代码行数:4,代码来源:special_math_ops_test.py


示例14: test_empty_rank1_dynamic_alloc_input_raises_op_error

 def test_empty_rank1_dynamic_alloc_input_raises_op_error(self):
   with self.test_session(use_gpu=self._use_gpu):
     ph = tf.placeholder(tf.float32)
     with self.assertRaisesOpError('rank'):
       tf.lbeta(ph).eval(feed_dict={ph: []})
开发者ID:0-T-0,项目名称:tensorflow,代码行数:5,代码来源:special_math_ops_test.py


示例15: _log_normalization

 def _log_normalization(self):
   return tf.lbeta(self.concentration)
开发者ID:asudomoeva,项目名称:probability,代码行数:2,代码来源:dirichlet.py



注:本文中的tensorflow.lbeta函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python tensorflow.less函数代码示例发布时间:2022-05-27
下一篇:
Python tensorflow.is_variable_initialized函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap