来自吴恩达深度学习系列视频,博主给差不过每行代码加了详细解释。
import numpy as np
import tensorflow as tf
coefficients = np.array([[1.], [-20], [100.]]) #3行一列的系数矩阵
w = tf.Variable(0, dtype=tf.float32) #创建变量w为0 类型为tf.float32
x = tf.placeholder(tf.float32, [3, 1]) #占位符 先声明类型后feed数据
#定义cost函数 J=w^2 - 10*w + 25
#cost = tf.add(tf.add(w**2, tf.multiply(-10., w)), 25)
#cost = w**2 - 10*w + 5
cost = x[0][0]*w**2 + x[1][0]*w + x[2][0]
#调用tf自带的GradientDescentOptimizer 设置learning_rate = 0.01
#调用GradientDescentOptimizer自带的minize去降低cost
train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
#指定init方法
init = tf.global_variables_initializer()
#创建一个新的会话
session = tf.Session()
#在当前会话下运行init 然后打印w的当前值
session.run(init)
print(session.run(w))
#在当前会话下运行一次梯度下降 然后打印w的当前值
session.run(train, feed_dict={x:coefficients})
print(session.run(w))
#执行1000次梯度下降 然后打印w当前值
for i in range(1000):
session.run(train, feed_dict={x:coefficients})
print(session.run(w))
当前代码的运行结果:
0.0
0.19999999
9.999977