当前位置: 首页>>代码示例>>Python>>正文


Python tensorflow.self_adjoint_eigvals方法代码示例

本文整理汇总了Python中tensorflow.self_adjoint_eigvals方法的典型用法代码示例。如果您正苦于以下问题:Python tensorflow.self_adjoint_eigvals方法的具体用法?Python tensorflow.self_adjoint_eigvals怎么用?Python tensorflow.self_adjoint_eigvals使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在tensorflow的用法示例。


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

示例1: trace_distance

# 需要导入模块: import tensorflow [as 别名]
# 或者: from tensorflow import self_adjoint_eigvals [as 别名]
def trace_distance(rho, sigma):
    r""" Trace distance :math:`\frac{1}{2}\tr \{ \sqrt{ (\rho - \sigma})^2  \}` between quantum states :math:`\rho` and :math:`\sigma`.

    The inputs and outputs are tensors of dtype float, and all computations support automatic differentiation.

    Args:
        rho (tf.Tensor): 2-dimensional Hermitian matrix representing state :math:`\rho`.
        sigma (tf.Tensor): 2-dimensional Hermitian matrix of the same dimensions and dtype as rho,
            representing state :math:`\sigma`.

    Returns:
        tf.Tensor: Returns the scalar trace distance.
    """

    if rho.shape != sigma.shape:
        raise ValueError("Cannot compute the trace distance if inputs have"
                         " different shapes {} and {}".format(rho.shape, sigma.shape))

    diff = rho - sigma
    eig = tf.self_adjoint_eigvals(diff)
    abs_eig = tf.abs(eig)
    return 0.5*tf.real(tf.reduce_sum(abs_eig)) 
开发者ID:XanaduAI,项目名称:QMLT,代码行数:24,代码来源:losses.py

示例2: log_det_kron_sum

# 需要导入模块: import tensorflow [as 别名]
# 或者: from tensorflow import self_adjoint_eigvals [as 别名]
def log_det_kron_sum(L1, L2):
    """
    L1 is a list of lower triangular arrays.
    L2 is a list of lower triangular arrays.

    if S1 = kron(L1) * kron(L1).T, and S2 similarly,
    this function computes the log determinant of S1 + S2
    """
    L1_logdets = [tf.reduce_sum(tf.log(tf.square(tf.diag_part(L)))) for L in L1]
    total_size = reduce(tf.mul, [L.shape[0] for L in L1])
    N_other = [total_size / tf.shape(L)[0] for L in L1]
    L1_logdet = reduce(tf.add, [s*ld for s, ld in zip(N_other, L1_logdets)])
    LiL = [tf.matrix_triangular_solve(L, R) for L, R in zip(L1, L2)]
    eigvals = [tf.self_adjoint_eigvals(tf.matmul(mat, mat.T)) for mat in LiL]
    eigvals_kronned = kron_vec_mul([tf.reshape(e, [-1, 1]) for e in eigvals], tf.ones([1, 1], tf.float64))
    return tf.reduce_sum(tf.log(1 + eigvals_kronned)) + L1_logdet 
开发者ID:jameshensman,项目名称:VFF,代码行数:18,代码来源:kronecker_ops.py

示例3: get_log_determinant

# 需要导入模块: import tensorflow [as 别名]
# 或者: from tensorflow import self_adjoint_eigvals [as 别名]
def get_log_determinant(self):
        tf_eigvals = tf.self_adjoint_eigvals(self.tf_covariance_matrix)

        return tf.reduce_sum(tf.log(tf_eigvals)) 
开发者ID:aakhundov,项目名称:tf-example-models,代码行数:6,代码来源:full_covariance.py

示例4: _check_eigvals

# 需要导入模块: import tensorflow [as 别名]
# 或者: from tensorflow import self_adjoint_eigvals [as 别名]
def _check_eigvals(kern, name):
    eigvals = tf.self_adjoint_eigvals(kern)

    def print_op():
        return tf.Print(kern, [eigvals], message='negative eigenvalues %s' % name)

    def identity_op():
        return tf.identity(kern)

    return tf.cond(tf.less(tf.reduce_min(eigvals), 0.0), true_fn=print_op, false_fn=identity_op) 
开发者ID:sremes,项目名称:nssm-gp,代码行数:12,代码来源:spectral_svgp.py

示例5: robust_kernel

# 需要导入模块: import tensorflow [as 别名]
# 或者: from tensorflow import self_adjoint_eigvals [as 别名]
def robust_kernel(kern, shape_X):
    eigvals = tf.self_adjoint_eigvals(kern)
    min_eig = tf.reduce_min(eigvals)
    jitter = settings.numerics.jitter_level

    def abs_min_eig():
        return tf.Print(tf.abs(min_eig), [min_eig], 'kernel had negative eigenvalue')

    def zero():
        return float_type(0.0)

    jitter += tf.cond(tf.less(min_eig, 0.0), abs_min_eig, zero)
    return kern + jitter * tf.eye(shape_X, dtype=settings.dtypes.float_type) 
开发者ID:sremes,项目名称:nssm-gp,代码行数:15,代码来源:neural.py

示例6: _GetSelfAdjointEigTest

# 需要导入模块: import tensorflow [as 别名]
# 或者: from tensorflow import self_adjoint_eigvals [as 别名]
def _GetSelfAdjointEigTest(dtype_, shape_):

  def CompareEigenVectors(self, x, y, tol):
    # Eigenvectors are only unique up to sign so we normalize the signs first.
    signs = np.sign(np.sum(np.divide(x, y), -2, keepdims=True))
    x *= signs
    self.assertAllClose(x, y, atol=tol, rtol=tol)

  def CompareEigenDecompositions(self, x_e, x_v, y_e, y_v, tol):
    num_batches = int(np.prod(x_e.shape[:-1]))
    n = x_e.shape[-1]
    x_e = np.reshape(x_e, [num_batches] + [n])
    x_v = np.reshape(x_v, [num_batches] + [n, n])
    y_e = np.reshape(y_e, [num_batches] + [n])
    y_v = np.reshape(y_v, [num_batches] + [n, n])
    for i in range(num_batches):
      x_ei, x_vi = SortEigenDecomposition(x_e[i, :], x_v[i, :, :])
      y_ei, y_vi = SortEigenDecomposition(y_e[i, :], y_v[i, :, :])
      self.assertAllClose(x_ei, y_ei, atol=tol, rtol=tol)
      CompareEigenVectors(self, x_vi, y_vi, tol)

  def Test(self):
    np.random.seed(1)
    n = shape_[-1]
    batch_shape = shape_[:-2]
    a = np.random.uniform(
        low=-1.0, high=1.0, size=n * n).reshape([n, n]).astype(dtype_)
    a += a.T
    a = np.tile(a, batch_shape + (1, 1))
    if dtype_ == np.float32:
      atol = 1e-4
    else:
      atol = 1e-12
    for compute_v in False, True:
      np_e, np_v = np.linalg.eig(a)
      with self.test_session():
        if compute_v:
          tf_e, tf_v = tf.self_adjoint_eig(tf.constant(a))

          # Check that V*diag(E)*V^T is close to A.
          a_ev = tf.batch_matmul(
              tf.batch_matmul(tf_v, tf.matrix_diag(tf_e)), tf_v, adj_y=True)
          self.assertAllClose(a_ev.eval(), a, atol=atol)

          # Compare to numpy.linalg.eig.
          CompareEigenDecompositions(self, np_e, np_v, tf_e.eval(), tf_v.eval(),
                                     atol)
        else:
          tf_e = tf.self_adjoint_eigvals(tf.constant(a))
          self.assertAllClose(
              np.sort(np_e, -1), np.sort(tf_e.eval(), -1), atol=atol)

  return Test 
开发者ID:tobegit3hub,项目名称:deep_image_model,代码行数:55,代码来源:self_adjoint_eig_op_test.py


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