April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
前ステップでは、可変長の引数に対応できるようにDeZeroを拡張しました。しかし、そのコードにはまだ改善の余地があります。ここでは、前ステップのDeZeroをより使いやすくするために、2つの改善を加えます。1つ目はAddクラス(もしくは具体的な関数クラス)を「使う人」にとっての改善です。そして、2つ目はAddクラスを「実装する人」にとっての改善です。それでは、1つ目の改善を行います。
私たちは前ステップで、Addクラスを使って計算を行いました。そこでは、図12-1の左側のコードを書きました。
図12-1 現状のコード(左)と改善後のコード(右)
図12-1の左側のコードが示すとおり、現状、Addクラスに与える引数はリストとしてまとめ、結果はタプルとして返されます。しかし、図12-1の右側のコードのように、Addクラスの引数はリストにまとめずに直接渡し、結果も変数を直接返した方が自然です。このようなコードを書けるようにすることが1つ目の改善点です。
では、1つ目の改善に取り組みましょう。それには、Functionクラスを修正します。前ステップからの修正箇所を網掛けで示すと、次のようになります。
classFunction:def__call__(self,*inputs):# ①アスタリスクを付けるxs=[x.dataforxininputs]ys=self.forward ...
Read now
Unlock full access