码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-07-21 16:32:41      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:min   初学   运行   ict   ble   for   range   none   输入   

 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实现一个简单线性回归的例子

标签:min   初学   运行   ict   ble   for   range   none   输入   

原文地址:https://www.cnblogs.com/WSX1994/p/11221492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!