Я хотел вычислить сумму от 1-й до K-й степени массива и равно вычислить сумму от 1-й до k-й степени тензора.Я обнаружил, что следующие коды и их результаты совершенно разные, и я не знаю почему.
Я отладил код и знаю, что результаты в первом раунде равны.
Код Numpy:
adj_k_prob = adj_prob
adj_k_pow = adj_prob
for i in range(K):
adj_k_pow = np.matmul(adj_prob, adj_k_pow)
adj_k_prob += adj_k_pow
Код Pytorch:
adj_k_prob = adj_prob_tensor
adj_k_pow = adj_prob_tensor
for i in range(K):
adj_k_pow = torch.matmul(adj_prob_tensor, adj_k_pow)
adj_k_prob += adj_k_pow
Значения adj_prob_tensor и adj_prob в начале цикла следующие:
tensor([[0.0000, 0.1429, 0.1429, 0.1429, 0.1429, 0.1429, 0.1429, 0.1429],
[0.2500, 0.0000, 0.2500, 0.2500, 0.0000, 0.0000, 0.0000, 0.2500],
[0.2500, 0.2500, 0.0000, 0.2500, 0.0000, 0.0000, 0.0000, 0.2500],
[0.2500, 0.2500, 0.2500, 0.0000, 0.0000, 0.0000, 0.0000, 0.2500],
[0.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.5000, 0.0000],
[0.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.5000, 0.0000],
[0.3333, 0.0000, 0.0000, 0.0000, 0.3333, 0.3333, 0.0000, 0.0000],
[0.2500, 0.2500, 0.2500, 0.2500, 0.0000, 0.0000, 0.0000, 0.0000]])
Есть личто-нибудь, что я должен проверить на это?