У меня есть матрица A, я бы хотел факторизовать ее как A = BC, зная, что C — это некоторая матрица, которая не изменяется в нескольких образцах A. Как мне найти B с помощью PyTorch? A — известная матрица.
A1 = B1 C
A2 = B2 C
A3 = B3 C
...





Если вы знаете A и C, вы можете вычислить B как B = [email protected](C)
Вы можете определить C, добавить его в оптимизатор (например, SGD ), а затем минимизировать некоторое расстояние (например, MSELoss) между Ai = Bi @ C на каждой итерации. Вот минимальный пример:
C = torch.rand(m,n)
optimizer = torch.optim.SGD([C], lr=0.1)
for a, b in zip(A,B):
loss = F.mse(a, b@C)
optimizer.zero_grad()
loss.backward()
optimizer.step()
Я знаю только A, C неизвестен, но это фиксированная матрица. Я ищу способы решить C с несколькими образцами A.