ゼロから作るDeep Learning3 ステップ40 broadcast_toとsum_to関数の関係についてのメモ

ステップ40でbroadcast_toとsum_toの関数が、それぞれをお互いに使用しますが、少し混乱したので図にまとめました

sum_to関数は、utils.pyと、functions.pyにそれぞれあることに注意が必要でした。

図の通りですが、文にすると以下になります。

  1. broadcast_to関数を呼び出す時(順伝播)、BroadcastTo(shape)(x)が呼び出され、np.broadcast_toが呼び出される

  2. functions.pyのsum_to関数を呼び出す時(順伝播)、SumTo(shape)(x)が呼び出され、utlis.pyの方のsum_to関数が呼び出される。

  3. BroadcastToの逆伝播の場合、functions.pyのsum_to関数が呼び出され、あとは2.と同じ。

  4. functions.pyのsum_to関数の逆伝播の場合、broadcast_to関数が呼び出され、あとは1.と同じ。