テンソル
テンソルはN次元行列です:
- スカラーは0次元テンソルです
- ベクトルは1次元テンソルです
- 行列は2次元テンソルです
テンソルは、ベクトルと行列をより高次元に一般化したものです。
スカラー | ベクトル | ||||||||||||||||||||||||||
1 |
|
||||||||||||||||||||||||||
マトリックス | テンソル | ||||||||||||||||||||||||||
|
|
テンソルランク
テンソルがN次元空間で持つことができる方向の数は、テンソルのランクと呼ばれます。
ランクはRで表されます。
スカラーは単一の数値です。R = 0。
- 軸は0です
- ランクは0です
- 0次元テンソルです
ベクトルは数値の配列です。R = 1。
- それは1つの軸を持っています
- ランクは1です
- 1次元テンソルです
マトリックスは2次元配列です。R = 2。
- それは2軸を持っています
- ランクは2です
- 2次元テンソルです
実テンソル
技術的には、上記のすべてがテンソルですが、テンソルについて話すとき、一般に2より大きい次元(R> 2)の行列について話します。
JavaScriptの線形代数
線形代数では、最も単純な数学オブジェクトはスカラーです。
const scalar = 1;
もう1つの単純な数学オブジェクトは配列です:
const array = [ 1, 2, 3 ];
行列は2次元配列です:
const matrix = [ [1,2],[3,4],[5,6] ];
ベクトルは、1つの列のみで行列として記述できます。
const vector = [ [1],[2],[3] ];
ベクトルは配列として書くこともできます:
const vector = [ 1, 2, 3 ];
テンソルはN次元配列です:
const tensor = [ [1,2,3],[4,5,6],[7,8,9] ];
JavaScriptテンソル演算
JavaScriptでテンソル演算をプログラミングすると、簡単にループのスパゲッティになる可能性があります。
JavScriptライブラリを使用すると、頭痛の種を大幅に減らすことができます。
テンソル演算に使用する最も一般的なライブラリの1つは、tensorflow.jsと呼ばれます。
テンソル加算
const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);
const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);
// Tensor Addition
const tensorAdd = tensorA.add(tensorB);
// Result [ [2, 1], [5, 2], [8, 3] ]
テンソル減算
const tensorA = tf.tensor([[1, 2], [3, 4], [5, 6]]);
const tensorB = tf.tensor([[1,-1], [2,-2], [3,-3]]);
// Tensor Subtraction
const tensorSub = tensorA.sub(tensorB);
// Result [ [0, 3], [1, 6], [2, 9] ]