2
2つの配列にeinsumを使用して A =(10,1)、B =(1,1,1,0,18)の次元を掛けたいとします。einsumを使用した行列の乗算
tmp = np.einsum('pi,klpy ->kliy', A, B)
正しい結果を得るためにBアレイの寸法を切り替える必要がありますか? 私は意味:
tmp = np.einsum('pi,lkyp ->kliy', A, B)
2つの配列にeinsumを使用して A =(10,1)、B =(1,1,1,0,18)の次元を掛けたいとします。einsumを使用した行列の乗算
tmp = np.einsum('pi,klpy ->kliy', A, B)
正しい結果を得るためにBアレイの寸法を切り替える必要がありますか? 私は意味:
tmp = np.einsum('pi,lkyp ->kliy', A, B)
はあなたの両方の結果が異なる形状を有する認識していますか? もしそうなら、あなたはおそらくどのような形が期待できるのか知っているはずです。
import numpy as np
A=np.arange(10).reshape(1,10)
B=np.arange(180).reshape(1,1,10,18)
np.einsum('pi,klpy ->kliy', A, B).shape
np.einsum('pi,lkyp ->kliy', A, B).shape
結果
np.einsum('pi,klpy ->kliy', A, B).shape
Out: (1, 1, 10, 18)
np.einsum('pi,lkyp ->kliy', A, B).shape
Out: (1, 1, 10, 10)
正しいか何秒も –
を動作しませんかなり確信しては本当に、依存しています。あなたの軸は何か特定のものを表していますか?またはあなたが実行したい操作をループとして書くことができますか? –