使用tensorflow实现简单的线性回归

import tensorflowas tf

import  numpyas np

import  matplotlib.pyplotas plt

# 简单的y = x * 0.1 + 0.5的分布

num_ponits =1000

venter = []

for iin range(num_ponits):

x = np.random.normal(0.0,0.5)

y = x*0.1  +0.5 + np.random.normal(0.0,0.03)

venter.append([x,y])

x_data = [v[0]for vin venter]

y_data = [v[1]for vin venter]

#plt.scatter(x_data,y_data,c='r')

#plt.show()

#权重要给个随机值,不能为0,这里为1维矩阵,取值在-1~1之间

#w = tf.Variable(tf.random_uniform([1],-1.0,1.0),name="W")

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

b = tf.Variable(tf.zeros([1]),name="b")

y = w*x_data + b

#求预测值y和实际值y_data之间的平方的平均值作为损失

loss = tf.reduce_mean(tf.square(y-y_data),name="loss")

#采用梯度下降的方法 来优化参数

optimizer = tf.train.GradientDescentOptimizer(0.5)

#训练的过程就是最小化这个误差值

train = optimizer.minimize(loss,name="loss")

sess = tf.Session()

init = tf.global_variables_initializer()

sess.run(init)

for stepin range(20):

sess.run(train)

print("w=",sess.run(w),"b=",sess.run(b),"loss=",sess.run(loss))

plt.scatter(x_data,y_data,c='r')

plt.plot(x_data,sess.run(w)*x_data+sess.run(b))

plt.show()



对比公式y = x * 0.1 + 0.5,可以看出权重逐渐等于0.1,倾斜值逐渐等于0.5.


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容