April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
前ステップでは、DeZeroのsum関数を実装しました。そのsum関数の逆伝播では、先取りしてbroadcast_to関数を利用しました。本ステップでは、broadcast_to関数の実装を行います。またDeZeroでも、NumPyと同様にブロードキャストが行えるようDeZeroの関数をいくつか修正します。
![]() |
|
NumPyには、ブロードキャストという機能があります。DeZeroの順伝播では、そのNumPyのブロードキャストが発生することがあります。しかし、現在のDeZeroは、ブロードキャストが発生すると、正しい逆伝播が行えなくなります。本ステップでは、ブロードキャストに正しく対処できるように、DeZeroを修正します。 |
ここではまずNumPyの関数を使って説明を行います。その後で、DeZeroの関数を実装するという流れで説明していきます。
まずは、NumPyのnp.broadcast_to(x, shape)について見ていきましょう。この関数は、x(ndarrayインスタンス)の要素を複製してshapeの形状になるようにします。例としては、次のような使い方ができます。
importnumpyasnpx=np.array([1,2,3])y=np.broadcast_to(x,(2,3))(y)
実行結果
[[1 2 3] [1 2 3]] ...
Read now
Unlock full access