Python ``tensorflow.math.betainc()`` 方法详解与实例


发布日期 : 2019-01-12 23:41:38 UTC

访问量: 10 次浏览

Python – tensorflow.math.betainc() 方法

TensorFlow是谷歌设计的开源python库,用于开发机器学习模型和深度学习神经网络。
betainc() 是tensorflow数学模块中的方法,用于计算正则化不完全β积分I x (a,b)。

规范化
不完整的β积分Ix(a,b)的定义为:

Ix(a,b) = B(x;a,b)/B(a,b)

其中,

B(x;a,b)是不完全β函数,定义为:。

B(x;a,b) = ? x o t a-1 (1-t) b-1 dt

而B(a,b)是完整的β函数。

语法:
tensorflow.math.betainc( a, b, x, name)

参数:

  • a:这是一个张量。允许的类型是 float32 和 float64。
  • b:它是一个张量,类型与a相同。
  • x:它也是一个与a类型相同的张量。
  • name:它是一个可选的参数,定义了操作的名称。

返回 :返回一个与a类型相同的张量。

示例 1:

# importing the library
import tensorflow as tf

# initializing the constant tensors
a = tf.constant([1,2,3,4,5], dtype = tf.float64)
b = tf.constant([1.5,2.7,3.4,4.9,5.6], dtype = tf.float64)
x = tf.constant( [1,1,1,1,1], dtype = tf.float64)

# printing the input tensors
print('Input a: ',a)
print('Input b: ',b)
print('Input x: ',x)

# calculating the regularized incomplete beta integral 
ribi = tf.math.betainc(a,b,x)

# printing the result
print('regularized incomplete beta integral: ',ribi)

输出:

Input a: tf.Tensor([1. 2. 3. 4. 5.], shape=(5,), dtype=float64)
Input b: tf.Tensor([1.5 2.7 3.4 4.9 5.6], shape=(5,), dtype=float64)
Input x: tf.Tensor([1. 1. 1. 1. 1.], shape=(5,), dtype=float64)
regularized incomplete beta integral: tf.Tensor([1. 1. 1. 1. 1.], shape=(5,), dtype=float64)

例子2:
这个例子试图用不允许的dtype张量评估正则化的不完全β积分。这将引发NotFoundError。

# importing the library
import tensorflow as tf

# initializing the constant tensors
a = tf.constant([1,2,3,4,5], dtype = tf.complex128)
b = tf.constant([1.5,2.7,3.4,4.9,5.6], dtype = tf.complex128)
x = tf.constant( [1,1,1,1,1], dtype = tf.complex128)

# printing the input tensors
print('Input a: ',a)
print('Input b: ',b)
print('Input x: ',x)

# calculating the regularized incomplete beta integral 
ribi = tf.math.betainc(a,b,x)

输出:

Input a: tf.Tensor([1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j], shape=(5,), dtype=complex128)
Input b: tf.Tensor([1.5+0.j 2.7+0.j 3.4+0.j 4.9+0.j 5.6+0.j], shape=(5,), dtype=complex128)
Input x: tf.Tensor([1.+0.j 1.+0.j 1.+0.j 1.+0.j 1.+0.j], shape=(5,), dtype=complex128)

NotFoundError Traceback (most recent call last)

<ipython-input-16-904ce11d62af> in <module>()
1 # calculating the regularized incomplete beta integral
----> 2 ribi = tf.math.betainc(a,b,x)

2 frames

/usr/local/lib/python3.6/dist-packages/six.py in raise_from(value, from_value)

NotFoundError: Could not find valid device for node.
Node:{{node Betainc}}
All kernels registered for op Betainc :
device='XLA_CPU_JIT'; T in [DT_FLOAT, DT_DOUBLE]
device='XLA_GPU_JIT'; T in [DT_FLOAT, DT_DOUBLE]
device='XLA_CPU'; T in [DT_FLOAT, DT_DOUBLE]
device='XLA_GPU'; T in [DT_FLOAT, DT_DOUBLE]
device='GPU'; T in [DT_DOUBLE]
device='GPU'; T in [DT_FLOAT]
device='CPU'; T in [DT_DOUBLE]
device='CPU'; T in [DT_FLOAT]