Я пытаюсь оценить декомпозицию Singular Value в моем наборе данных, который имеет размеры 1401375, 51. Когда я пытаюсь использовать scipy.linalg.svd, он дает мне правильное число единичных значений (51), и все они верны (Я проверил против LAPACK). Однако, когда я пытаюсь использовать scipy.sparse.linalg.svds, это выдает ошибку:
ValueError: k должно быть от 1 до мин (A.shape), k = 51
_, sigma, _ = sp.sparse.linalg.svds(A_s, k=51, return_singular_vectors='vh',which='LM')
_, sigma, _ = sp.linalg.svd(A_D, full_matrices=False,
overwrite_a=True, check_finite=False,
compute_uv=True)
Я ожидаю, что разреженная версия вернет 51 единичное значение, но это не удастся. Когда я понижаю значение k до 50, оно выполняется успешно.