计算 f=x^2-2xy+3y^2=2x-2y
最小时x与y的值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import tensorflow as tf
x = tf.Variable(tf.constant(1.0)) y = tf.Variable(tf.constant(2.0)) loss = tf.square(x) - tf.multiply(tf.multiply(x, y), 2.0) + tf.multiply(3.0, tf.square(y)) + tf.multiply(2.0, x) - tf.multiply(2.0, y)
optimizer = tf.train.GradientDescentOptimizer(0.05) train = optimizer.minimize(loss)
init = tf.initialize_all_variables()
sess = tf.Session() sess.run(init)
for step in range(0, 201): sess.run(train) if step % 20 == 0: print( step, sess.run(x), sess.run(y))
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 0 1.0 1.6 20 -0.320484 0.281646 40 -0.796801 0.0841678 60 -0.939242 0.0251667 80 -0.981833 0.00752503 100 -0.994568 0.00225003 120 -0.998376 0.000672782 140 -0.999514 0.000201154 160 -0.999855 6.01531e-05 180 -0.999956 1.80066e-05 200 -0.999987 5.38831e-06 220 -0.999996 1.60342e-06 240 -0.999999 4.94772e-07 260 -1.0 1.60986e-07 280 -1.0 1.43105e-07 300 -1.0 1.43105e-07
|
当 f=x^2-2xy+3y^2=2x-2y
最小时 x = -1
y = 0