示例#1
0
 def matrix_pair(self, rng, size, size_inner):
     left_factor_matrix = rng.standard_normal((size, size_inner))
     right_factor_matrix = rng.standard_normal((size_inner, size))
     square_matrix = rng.standard_normal((size, size))
     return (
         matrices.SquareLowRankUpdateMatrix(
             matrices.DenseRectangularMatrix(left_factor_matrix),
             matrices.DenseRectangularMatrix(right_factor_matrix),
             matrices.DenseSquareMatrix(square_matrix),
         ),
         square_matrix + left_factor_matrix @ right_factor_matrix,
     )
示例#2
0
 def __init__(self):
     matrix_pairs = {}
     rng = np.random.RandomState(SEED)
     for outer_dim in SIZES:
         inner_dim = max(1, outer_dim // 2)
         left_factor_matrix = rng.standard_normal((outer_dim, inner_dim))
         right_factor_matrix = rng.standard_normal((inner_dim, outer_dim))
         square_matrix = rng.standard_normal((outer_dim, outer_dim))
         matrix_pairs[(inner_dim, outer_dim)] = (
             matrices.SquareLowRankUpdateMatrix(
                 matrices.DenseRectangularMatrix(left_factor_matrix),
                 matrices.DenseRectangularMatrix(right_factor_matrix),
                 matrices.DenseSquareMatrix(square_matrix)),
             square_matrix + left_factor_matrix @ right_factor_matrix)
     super().__init__(matrix_pairs, rng)