らんだむな記憶

blogというものを体験してみようか!的なー

CourseraのImproving Deep Neural Networks

Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization | Courseraを見ると途中でTensorFlowを使うようだ。
YouTubeが特に該当する動画に見える・・・。が、Udacityのud187と比較すると分かるがこれはTensorFlow 2.0ベースではなくそれ以前のDefine-and-Runのスタイルで書かれている。2.0でDefine-by-Runがデフォルトになることを考えると、少し古いってことになるのかな・・・。

import numpy as np
import tensorflow as tf

w = tf.Variable(0,dtype=tf.float32)
cost = tf.add(tf.add(w**2,tf.multiply(-10.,w)),25)
train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

init = tf.global_variables_initializer()
session = tf.Session()
session.run(init)
print(session.run(w))

session.run(train)
print(session.run(w))

for i in range(1000):
    session.run(train)
print(session.run(w))

Migrate your TensorFlow 1 code to TensorFlow 2  |  TensorFlow Coretf.keras.optimizers.SGD  |  TensorFlow Core r2.0を見ながらTF 2.0用に書き直すと以下のようになるのかな:

import numpy as np
import tensorflow as tf

tf.enable_eager_execution()

w = tf.keras.backend.variable(0)
cost = lambda: w**2 - 10*w + 25
sgd = tf.keras.optimizers.SGD(learning_rate=0.01)

for i in range(1000):
    sgd.minimize(cost, var_list=[w])

print(w.numpy())

他の動画は:
YouTube