回答編集履歴
2
表記ブレ
answer
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
- `c = a.dot(b)`:
|
30
30
|
`b` が行列であれば以下の関係が成り立ちます。
|
31
|
-
C_{
|
31
|
+
C_{…, i, j} = Σ_k A_{…, i, k} B_{k, j}
|
32
32
|
したがって `np.swapaxes(x, mode - 1, -1).dot(m.T)` と書くと
|
33
33
|
A'_{i_1, …, i_{n-1}, i_N, i_{n+1}, …, i_{N-1}, j}
|
34
34
|
:= Σ_{i_n}^{l_n} X'_{i_1, i_2, …, i_{n-1}, i_N, i_{n+1} …, i_{N-1}, i_n} M'_{i_n, j}
|
@@ -37,5 +37,5 @@
|
|
37
37
|
|
38
38
|
- 最後に、再び `np.swapaxes(x, mode - 1, -1)` を適用することで
|
39
39
|
( X ⊗_n M )_{i_1, …, i_{n-1}, j, i_{n+1}, …, i_N}
|
40
|
-
|
40
|
+
= A'_{i_1, …, i_{n-1}, i_N, i_{n+1}, …, i_{N-1}, j}
|
41
41
|
を得ます。
|
1
prodcut→product
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
モードn積については知らなかったのですが、定義に従うと以下のコードになると思います。
|
2
2
|
|
3
3
|
```python
|
4
|
-
def
|
4
|
+
def mode_n_product(x, m, mode):
|
5
5
|
x = np.asarray(x)
|
6
6
|
m = np.asarray(m)
|
7
7
|
if mode <= 0 or mode % 1 != 0:
|