TensorFlow实现一个简单线性回归的例子

Posted WSX_WOLF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow实现一个简单线性回归的例子相关的知识,希望对你有一定的参考价值。

 1 __author__ = "WSX"
 2 import tensorflow as tf
 3 import numpy as np
 4 import matplotlib.pyplot as plt
 5 
 6 x_data = np.linspace(-0.5,0.5,200)[: , np.newaxis] #-0.5 --0.5 之间产生200个点 存到后面的2维中
 7 noise = np.random.normal(0 ,0.02 ,x_data.shape)
 8 y_data = np.square(x_data) +noise
 9 
10 x= tf.placeholder(tf.float32 ,[None ,1]) #不确定行 和 1列
11 y= tf.placeholder(tf.float32 ,[None ,1])
12 
13 
14 #---------------------构建神经网络---------------------
15 
16 #----------------中间层 10 个
17 Weights = tf.Variable(tf.random_normal([1 ,10]))
18 biases = tf.Variable(tf.zeros([1,10]))
19 res = tf.matmul(x , Weights) +biases
20 L1= tf.nn.tanh(res)   #激活函数(双曲正切函数)
21 
22 #-------------输入层一个神经元 x
23 
24 #------------输出层为 y 一个神经元
25 Weights_out = tf.Variable(tf.random_normal([10 ,1]))
26 biases_out = tf.Variable(tf.zeros([1,1]))
27 res_out = tf.matmul(L1 , Weights_out) +biases_out
28 predict = tf.nn.tanh(res_out)
29 
30 #------------代价函数
31 loss = tf.reduce_mean(tf.square(y - predict))
32 train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)#梯度下降法训练
33 
34 
35 #定义会话
36 with tf.Session() as sess:
37     sess.run(tf.global_variables_initializer())
38     for i in range(2000):
39         sess.run(train_step, feed_dict={x:x_data , y:y_data})
40 
41     #获取预测值
42     predict_value = sess.run(predict , feed_dict={x:x_data})
43 
44     #画图
45     plt.figure()
46     plt.scatter(x_data,y_data)
47     plt.plot(x_data , predict_value ,"r")
48     plt.show()

代码都有注释。适合初学者理解。

例子主要回归了一个自定义的函数 y = x2

本例子的网络结构:

技术图片

搭建步骤:

① 定义图

② 定义损失函数

③ 定义会话,在会话中运行

④训练

⑤评估

 

以上是关于TensorFlow实现一个简单线性回归的例子的主要内容,如果未能解决你的问题,请参考以下文章

使用 Tensorflow 的多元线性回归模型

tensorflow的线性回归得到明显的均方误差

tensorflow 实现逻辑回归——原以为TensorFlow不擅长做线性回归或者逻辑回归,原来是这么简单哇!

机器学习与Tensorflow——机器学习基本概念tensorflow实现简单线性回归

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

使用tensorflow进行简单的线性回归