データの次元
多次元のNumpy配列は、テンソルとも呼ばれます。現在のすべての機械学習システムは、基本的なデータ構造としてテンソルを使用しています。テンソルはデータコンテナーであり、それに含まれるデータはほぼ数値データであるため、数値のコンテナーでもあります。私たちは皆、2次元配列(2次元テンソル)である行列に精通しています。テンソルは、行列を任意の次元に一般化したものです。テンソルの次元は、しばしば軸と呼ばれます。
データのディメンションを図に示します。
1.スカラー(0Dテンソル)
数値を1つだけ含むテンソルは、スカラー(スカラーテンソル、ゼロ次元テンソル、または0Dテンソルとも呼ばれます)と呼ばれます。Numpyでは、float32またはfloat64の数値はスカラーテンソル(またはスカラーの配列)です。上の画像には0Dテンソルはありません。
>>> import numpy as np
>>> a = np.array(12)
>>> a
array(12)
>>> a.ndim
0
2.ベクトル(1次元配列、1dテンソル)
数値の配列は、ベクトルまたは1次元テンソル(1Dテンソル)と呼ばれます。1Dテンソルには1つの軸しかありません。
>>> import numpy as np
>>> a = np.array([12,3,5,7])
>>> a
array([12,3,5,7])
>>> a.ndim # 数组维度(维数、轴数、秩)
1
3. 2次元配列(2dテンソル)
ベクトルの配列は、2次元配列(2Dテンソル)と呼ばれます。2つの軸があります(多くの場合、行と列と呼ばれます)。
>>> import numpy as np
>>> a = np.array([[12,3,5,7],[11,2,4,6],[10,8,6,7]])
>>> a
array([[12, 3, 5, 7],
[11, 2, 4, 6],
[10, 8, 6, 7]])
>>> a.ndim # 数组维度(维数、轴数、秩)
2
最初の軸の要素は行と呼ばれ、2番目の軸の要素は列と呼ばれます。
4. 3次元配列(3dテンソル)
複数の2次元配列を新しい配列に組み合わせると、3次元配列を取得でき、その値は数値で構成される立方体として理解できます。
>>> import numpy as np
>>> a = np.arange(1,28).reshape(3,3,3)
>>> a
array([[[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9]],
[[10, 11, 12],
[13, 14, 15],
[16, 17, 18]],
[[19, 20, 21],
[22, 23, 24],
[25, 26, 27]]])
時系列データまたはシーケンスデータの3次元データの形状を図に示し
ます。画像データはすべて3次元配列です。画像には通常、高さ、幅、色深度の3つの次元があります。グレースケール画像にはカラーチャンネルが1つしかなく、2次元で保存できます。ただし、慣例により、図に示すように、画像テンソルは常に3Dテンソルです
。1つの色は2次元配列(2dテンソル)を構成し、3色(RBG)は3つの2次元配列が3次元配列(3d-テンソル))、カラー画像を形成します。
複数の3dテンソルを組み合わせると、4dテンソルが作成されます。図に示すように、複数のカラー画像が4次元配列(4dテンソル)を形成します。
たとえば、深層学習では通常、0Dから4Dの範囲のテンソルが処理されますが、ビデオデータの処理でも5Dテンソルが発生する場合があります。