🔎
TensorFlow.js の optimizer.minimize が最適化する変数はどれか
tfjs-examples 内の polynomial-regression-core/index.js を読んでいて
optimizer.minimize
が 弄る対象とする変数 がどうやって決まるのか分からなかった。
結論
optimizer.minimize
内で 使用している変数を調べる関数 を呼んでる。
上記 index.js
の 103 ~ 107 行目を下記のように変更しても動きは同じ。
optimizer.minimize(() => {
// Feed the examples into the model
const pred = predict(xs);
return loss(pred, ys);
}, false, [a, b, c, d]); // 3 つ目の引数が varList
読んだコード
Optimizer
の定義。
試したこと
44 行目に下記のコードを追加した。
const e = tf.variable(tf.scalar(Math.random()));
実行したが train
前後で e
は変化しなかった。
optimizer.minimize
の 3 つ目の引数に [a, b, c]
を指定した。
107 行目を下記に変更。
}, false, [a, b, c]);
train
前後で d
が変化しなくなった。
Discussion