Ejemplo n.º 1
0
  def testMatrixSquareRootFunction(self):
    """Tests for matrix square roots."""

    size = 20
    mat_a = np.random.rand(size, size)
    mat = np.dot(mat_a, mat_a.T)
    expected_mat = np_power(mat, 0.5)
    mat_root = matrix_functions.matrix_square_root(mat, size)
    self.assertAllCloseAccordingToType(
        expected_mat, mat_root, atol=TOLERANCE, rtol=TOLERANCE)
Ejemplo n.º 2
0
  def _compute_power_iter(self, var, mat_g, mat_g_size, alpha, mat_h_slot_name,
                          iter_count=100, epsilon=1e-6):
    """Computes mat_g^alpha, where alpha = -1/p, p a positive integer."""

    mat_g_sqrt = matrix_functions.matrix_square_root(mat_g, mat_g_size,
                                                     iter_count, self._epsilon)
    mat_h = matrix_functions.matrix_inverse_pth_root(
        mat_g_sqrt,
        mat_g_size,
        2 * alpha,
        iter_count,
        epsilon,
        ridge_epsilon=0.0)

    if mat_h_slot_name is not None:
      return state_ops.assign(self.get_slot(var, mat_h_slot_name), mat_h)
    return mat_h