import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
#构建数据
points_num = 100
vectors = []
#用numpy的正态随机分布函数生成100个点
#这些点的坐标值对应线性方程 y = 0.1*x +0.2
for i in range(points_num):
x1 = np.random.normal(0.0,1.0)
y1 = x1*0.1+0.2 +np.random.normal(0.0,0.06)
vectors.append([x1,y1])
x_data = [v[0] for v in vectors]#x点的坐标
y_data = [v[1] for v in vectors]#y点的坐标
#图像1显示100个数据点
plt.plot(x_data,y_data,'r*',label= 'Original data')
plt.show()
#
#构建模型
w = tf.Variable(tf.random_uniform([1],-1,1))#初始化weight,产生1*1的矩阵,数值在-1到1之间
b = tf.Variable(tf.zeros([1]))#初始化bias
y = w * x_data+b
#定义损失函数(loss function)
loss = tf.reduce_mean(tf.square(y-y_data))
#用梯度下降优化器优化损失函数
optimizer = tf.train.GradientDescentOptimizer(0.075)#设置学习速率
train = optimizer.minimize(loss)
#创建会话
sess = tf.Session()
#初始化数据流中的变量
init = tf.global_variables_initializer()
sess.run(init)
#训练50步
for step in range(500):
sess.run(train)
#打印每一步的损失,权重,偏差
print(step,sess.run(loss),sess.run(w),sess.run(b))
plt.plot(x_data,y_data,'r*',label= 'Original data')
plt.plot(x_data,sess.run(w)*x_data+sess.run(b),'r*',label= 'Original data')
plt.show()
sess.close()
tensorflow入门一:tensorflow实现梯度下降
猜你喜欢
转载自blog.csdn.net/songjinxaing/article/details/80540063
今日推荐
周排行