前提・実現したいこと
Pythonで降下勾配法を実装しようとしています。学習過程を描画するために学習途中のxをリストとしてほしいです。
発生している問題
リストの中身がすべて100回学習を終えたxの値になってしまっています。
該当のソースコード
Python
・・・省略・・・ #fは配列xを引数とし、数値を返す関数 def gradient_descent(f, x_init,lr=0.01, step_num=100): x=x_init x_list=[] # 繰り返し試行 for i in range(step_num): # 勾配を計算 grad = numerical_gradient(f, x) print(x) x_list.append(x) x -= lr * grad return x,x_list a,b=gradient_descent(f, x_init) print(b)
試したこと
for文の中にprint(x)を入れて確認してみたところ私が欲しい結果が得られていました。
つまり、
[x]
[(1回更新したx)]
[(2回更新したx)]
・
・
・
[(100回更新したx)]
のように表示されました。
補足情報(FW/ツールのバージョンなど)
Atom
まだ回答がついていません
会員登録して回答してみよう