April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
私たちのDeZeroは、ますます便利になってきました。今では、aとbをVariableインスタンスとしたとき、a * bやa + bのようなコードを書くことができます。しかし残念ながら、a * np.array(2.0)のように、ndarrayインスタンスと合わせて使うことはできません。また、3 + bのように数値データとも組み合わせて使うことはできません。ndarrayインスタンスや数値データを合わせて使えるようになれば、DeZeroはさらに便利になるでしょう。本ステップでは、Variableインスタンスとndarrayインスタンス、さらにはintやfloatなどを一緒に使えるように拡張していきます。
まずは、Variableをndarrayインスタンスと一緒に使えるようにします。そのための戦略は単純です。たとえば、aをVariableインスタンスとして、a * np.array(2.0)というコードを実行した場合、そのndarrayインスタンスを(ユーザの見えないところで)Variableインスタンスに変換するのです。つまりは、Variable(np.array(2.0))に変換してしまえば、後の計算はこれまでと同じというわけです。
そのための前準備として、as_variableという便利関数を用意します。この関数は、引数で与えられたオブジェクトをVariableインスタンスに変換します。その実装は次のとおりです。
steps/step21.py
defas_variable(obj):ifisinstance(obj,Variable):returnobjreturnVariable ...
Read now
Unlock full access