Мне нужно инвертировать некоторые матрицы в pytorch. Однако некоторые матрицы не являются обратимыми, что приводит к ошибке времени выполнения кода:
matrices = torch.randn([5,3,3])
matrices[[2,3]] = torch.zeros([3,3])
inverses = torch.inverse(matrices)
RuntimeError: inverse_cpu: For batch 2: U(1,1) is zero, singular U.
У меня есть запасной метод для таких ситуаций. Однако я не могу понять, какая из матриц выдает ошибку. В настоящее время я заменил код на не векторизованную версию, но это стало узким местом.
Есть ли способ справиться с этим, не отказываясь от векторизации?