April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
これまで私たちは、変数として主に「スカラ」を扱ってきました。しかし機械学習では、ベクトルや行列といった「テンソル」が主役になります。本ステップでは、テンソルを使うときの注意点を述べ、これからDeZeroを拡張するための準備を行います。また、これまで実装してきたDeZeroの関数が、テンソルでもそのまま利用できることを説明します。
私たちはこれまで、DeZeroの関数をいくつか実装してきました。たとえば、add、mul、div、sinなどの関数です。それらの関数を実装するにあたって、私たちは、入力と出力がすべて「スカラ」であることを想定してきました。たとえば、sin関数を実装したときは、次のようなケースを想定しました。
importnumpyasnpimportdezero.functionsasFfromdezeroimportVariablex=Variable(np.array(1.0))y=F.sin(x)(y)
実行結果
variable(0.84147098)
上の例では、xは単一の値であるスカラ(正確には0次元のndarrayインスタンス)です。私たちは、そのようなスカラを扱うケースを想定して、これまでDeZeroを実装してきました。ここでxがテンソルの場合、たとえば行列の場合はどうなるでしょうか? その場合は、要素ごとにsin関数が適用されます。実際に行ってみると、次のようになります。
x=Variable(np.array([[1,2,3],[4,5,6]]))y=F.sin(x)(y)
実行結果
variable([[ ...
Read now
Unlock full access