def __init__(self): matrix_pairs = {} rng = np.random.RandomState(SEED) for sz in SIZES: scalar = rng.normal() matrix_pairs[sz] = (matrices.ScaledIdentityMatrix(scalar, None), scalar * np.identity(sz)) super().__init__(matrix_pairs, rng)
def __init__(self): super().__init__() for sz in SIZES: scalar = self.rng.normal() self.matrices[sz] = matrices.ScaledIdentityMatrix(scalar, sz) self.np_matrices[sz] = scalar * np.identity(sz) if AUTOGRAD_AVAILABLE: self.grad_log_abs_det_sqrts[sz] = grad( lambda s: 0.5 * anp.linalg.slogdet(s * anp.eye(sz))[1])( scalar) self.grad_quadratic_form_invs[sz] = partial( grad(lambda s, v: (v / s) @ v), scalar)
def __init__(self): super().__init__() for sz in SIZES: scalar = self.rng.normal() self.matrices[sz] = matrices.ScaledIdentityMatrix(scalar, None) self.np_matrices[sz] = scalar * np.identity(sz)
def matrix_pair(self, rng, size): scalar = rng.normal() return (matrices.ScaledIdentityMatrix(scalar, None), scalar * np.identity(size))