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不擅长做线性回归或者逻辑回归,原来是这么简单哇!