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] '''