Элементарный точечный продукт и einsum

#python #numpy

#python #numpy

Вопрос:

у меня возникла эта проблема:

 C = np.random.random((10, 10000, 100))
B = np.random.random((10, 10000, 100))
D1 = np.einsum("ikj,ijt->ikt", C.transpose(0, 2, 1), B)
D2 = np.array([np.dot(C[k].T, B[k]) for k in range(10)])
  

И это разные вещи. Не могли бы вы объяснить мне, почему?

Комментарии:

1. Вы пробовали np.allclose(D1, D2)? или что вы имеете в виду?

2. np.allclose(...) возвращает True для этого кода. Итак, D1 равно D2 .