Я хотел сэкономить немного памяти и подумал, что создам scipy.sparse
матрицу идентичности (dim
исчисляется тысячами, не страшно, но и не скромно).Обратите внимание, что его форма проходит assert
:
cov = sigma_0 * sparse.identity(dim, dtype=np.float32)
assert (dim, dim) == cov.shape
result = np.random.multivariate_normal(mu, cov)
E ValueError: cov must be 2 dimensional and square
Следующее, однако, прекрасно работает:
cov = sigma_0 * np.identity(dim, dtype=np.float32)
assert (dim, dim) == cov.shape
result = np.random.multivariate_normal(mu, cov)
Я где-то пропустил, в документах, чтобы сказать, что разреженные ковариационные матрицы, как ожидают, терпят неудачу с ValueError
?