import numpy as np
序文:
これはすでに知っているので、読むのに飽きたら序文を飛ばしてください。
最近、デバッグ中に問題に遭遇しました。`A = B = C = np.zeros([3,3]) と書いて、3 つの新しい行列を定義したと思っていました。私がしたことは実際には異なっていました。1 つの新しい行列 (ゼロで埋められた) と 3 つのラベルを定義し、それぞれが同じ行列を参照しています。次の例で説明しましょう。
>>> a = b = [0,0]
>>> a
[0,0]
>>> b
[0,0]
>>> # All good so far.
>>> a[0] = 1
>>> a
[1,0]
>>> # Nothing short of what one would expect...
>>> b
[1,0]
>>> # ... but since 'b' is assigned tot he same tuple, it changes as well.
質問:
良い。わかったからには、問題ないですよね?確かに私はちょうど書くことができます:
A = np.zeros([3,3])
B = np.zeros([3,3])
C = np.zeros([3,3])
そしてすべてが機能しますか?そのとおりですが、次のように書くこともできます。
A, B, C = np.zeros([3,3,3])
2 番目のオプションは、3x3x3 テンソルを定義し、レイヤーごとに 3 つのラベル A、B、C を定義するため、より効率的な方法でメモリを使用すると思います。
どっちがいいと思いますか?