tensorflow 实现曲线过拟合

#调用库名

import tensorflowas tf

import numpyas np

#模拟生成100对数据对 对应的函数为y= x *0.1 +0.3

x_data = np.random.rand(100).astype('float32')

y_data = x_data *0.1 +0.3

#0.1 = w 0.3表示b 防止过拟合

#指定w和b变量的取值范围  定义变量W b

W = tf.Variable(tf.random_uniform([1],-1.0,1.0))

b = tf.Variable(tf.zeros([1]))

y = W * x_data +b

#定义损失函数  预测值 是 y 准确的y_date 用预测值减去实际值 差多少等于损失多少

#最小化均方差

loss = tf.reduce_mean(tf.square(y-y_data))

#opeimizer 找到曲线的最低点 ==损失函数的最小值

opeimizer = tf.train.GradientDescentOptimizer(0.5)

#保证loss为最小的

train = opeimizer.minimize(loss)

#初始化tensorflow参数

init = tf.initialize_all_variables()

#运行数据流图 (开始执行计算过程)

sess = tf.Session()

sess.run(init)

#观察多次迭代计算时,w和b的拟合值

sum =0

for stepin range(201):

l,w =sess.run([loss,W])

print("loss is %s,%s" % (l,w))

sum +=(loss)

print(sess.run(sum/201))

你可能感兴趣的:(tensorflow 实现曲线过拟合)