1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

numpyのaxis = i で迷わない

Posted at

はじめに

ニューラルネットワークの学習をしていてコードを書いていると必ず出てくるnumpyのコード

numpy.sum(x, axis=i)

列方向に演算する場合は、axis=0
行方向に演算する場合は、axis=1 

だと思い込み学習を進めていると全く意味が分からなくなり混乱してしまいました。

混乱していた理由

行、列みたいに理解をしようとしていたのが混乱の原因でした。
しかも行列方向の意味がどっち向きのことをいっているのか分からなくなり、さらにチャンネル次元が追加されるともう意味がわかりません。

axisの指定に迷っていてはそもそも学習に支障がでます。
もう二度と迷わないように自分なりの考え方を整理しました。

このように考えてみる

そもそものコードのあり方に立ち返り
axis=0,1,2,3・・・
はリストのインデックスと同じように演算したい次元の順番を指定していると考えて

ex:
(N,M)でNを演算したいときは、axis=0
(C,N,M)でCを演算したいときは、axis=0
(N,T,H)でHを演算したいときは、axis=2

これでひとまず

あとはその変数の次元がどうなっているのか。
そのモデルや関数はどうしたいのかを理解していれば大丈夫です。

はい、これからが本番です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?