teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

一箇所zがyになっていたのを訂正

2020/07/04 03:01

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -14,4 +14,4 @@
14
14
 
15
15
  > [-1, 0, 1]をcos関数(sin関数を微分した)に代入したという解釈なのですが、途中のz.grad = np.ones(3, dtype=np.float32)の意味が分からないです。加えて、出力がnoneとなり何も出力されないことから、この解釈が間違っていると思うのですが、どこが間違っているのか分かりません。
16
16
 
17
- 参照しているコードがどこのものかわからないのですが、おそらく最後の`print(z.grad)`は`print(x.grad)`の書き間違いなのでは。`z`が複数の要素を持つ場合、`z.grad`に`np.ones`で同じ要素数ですべて初期値1の配列を設定して`y.backward`で自動微分を実行すると、`x.grad`にそれぞれの勾配`[0.5403023 1. 0.5403023]`が得られます。
17
+ 参照しているコードがどこのものかわからないのですが、おそらく最後の`print(z.grad)`は`print(x.grad)`の書き間違いなのでは。`z`が複数の要素を持つ場合、`z.grad`に`np.ones`で同じ要素数ですべて初期値1の配列を設定して`z.backward`で自動微分を実行すると、`x.grad`にそれぞれの勾配`[0.5403023 1. 0.5403023]`が得られます。