TensorFlow——简单构造和优化案例

import tensorflow as tf
import numpy as np

#实用numpy生成100个随机点,相当于样本
x_data = np.random.rand(100)
y_data = x_data*0.1 + 0.2

#构造一个线性模型——模型
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k*x_data + b

#用TensorFlow的方法,优化模型,即优化两个变量,使得模型接近于或者等于样本点的分布
#二次代价函数
loss = tf.reduce_mean(tf.square(y_data-y))#y_data相当于真实值,y想当于预测值,这里得到误差,求平方,再求平均值得到loss
#定义一个梯度下降法来进行训练的优化器
optimizer = tf.train.GradientDescentOptimizer(0.2)#0.2是学习率
#定义一个最小化代价函数
train = optimizer.minimize(loss)#loss越小越好,预测值越接近于真实值

#初始化变量
init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    for step in range(201):
        sess.run(train)
        if step%20 == 0:
            print(step,sess.run([k,b]))

'''
运行结果,可以看到200步的时候预测的k和b已经和实际的很接近了
0 [0.054407477, 0.100459]
20 [0.1040742, 0.197785]
40 [0.10252335, 0.19862819]
60 [0.10156281, 0.19915038]
80 [0.10096793, 0.19947378]
100 [0.10059948, 0.19967408]
120 [0.10037129, 0.19979815]
140 [0.10022995, 0.19987498]
160 [0.100142434, 0.19992256]
180 [0.10008822, 0.19995205]
200 [0.10005463, 0.19997029]
'''

 

posted @ 2019-04-19 16:33  不妨不妨,来日方长  阅读(199)  评论(0编辑  收藏  举报