TensorFlow--线性回归问题初步
生活随笔
收集整理的這篇文章主要介紹了
TensorFlow--线性回归问题初步
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
主要學習了使用TensorFlow深度學習系統如何進行訓練數據以及預測數據:
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import matplotlib.pyplot as plt import numpy as np import tensorflow as tf #導入對應的第三方庫 ''' 線性回歸實戰:TensorFlow''' #設置隨機種子 np.random.seed(5)#直接采用np生成等差數列的方法,生成100個點,每個點的取值在-1~1之間#第一步:準備數據 x_data = np.linspace(-1,1,100)# y = 2x+1+噪聲 ,其中,噪聲的維度與x_data一致y_data = 2 * x_data + 1.0 + np.random.randn(*x_data.shape) * 0.4#畫出隨機生成數據的散點圖 plt.scatter(x_data,y_data) plt.show()#畫出我們想要學習到的線性函數y = 2x+1plt.plot(x_data,2 * x_data + 1.0, color = 'red',linewidth = 3)#顯示數據集的分布 #plt.show()#第二步:構建模型#定義訓練數據的占位符,x是特征值,y是標簽值 x = tf.placeholder("float",name = "x") y = tf.placeholder("float",name = "y")#定義模型函數 w和b是模型真正的參數 def model(x,w,b):return tf.multiply(x,w) + b #返回wx +b#定義模型機構 TensorFlow的變量用來更新參數 ''' TensorFlow變量的聲明函數是tf.Variable tf.Variable的作用是保存和更新參數 變量的初始值可以是隨機數、常數,或是通過其他變量的初始值計算得到 '''#構建線性函數的斜率,變量w w = tf.Variable(1.0,name="w0")#構建線性函數的截距,變量b b = tf.Variable(0.0,name="b0")#pred是預測值,前向計算 pred = model(x,w,b)#第三步:訓練模型 #設置訓練參數#迭代次數 train_epochs = 10#學習率 learning_rate = 0.05#定義損失函數 #采用均方差作為損失函數 loss_function = tf.reduce_mean(tf.square(y-pred))#選擇迭代器 #梯度下降優化器 optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)#聲明會話 sess = tf.Session()#變量初始化 init = tf.global_variables_initializer() sess.run(init)#執行訓練 #開始訓練,輪數為epoch,采用SGD隨機梯度下降優化方法 for epoch in range(train_epochs):for xs,ys in zip(x_data,y_data): #訓練100次_,loss = sess.run([optimizer,loss_function],feed_dict={x:xs,y:ys})b0temp = b.eval(session = sess)w0temp = w.eval(session = sess)plt.plot(x_data,w0temp * x_data + b0temp)#畫圖 plt.show()print("w:",sess.run(w))#w的值應該在2附近 print("b:",sess.run(b))#w的值應該在1附近#第四步:進行預測 plt.scatter(x_data,y_data,label = 'Original data') plt.plot(x_data,x_data * sess.run(w) + sess.run(b),label = 'Fitted line',color='r',linewidth = 3) plt.legend(loc = 2) #通過參數loc指定圖例位置 plt.show()x_test = 3.21predict = sess.run(pred,feed_dict={x:x_test}) print("預測值:%f" % predict)target = 2 * x_test + 1.0 print("目標值:%f" % target)?
輸出結果:
?
這個階段:需要自己進行消化,多敲幾遍這個代碼,理解整個過程,為后期的學習打好堅實的基礎。
轉載于:https://my.oschina.net/u/3183716/blog/2995466
總結
以上是生活随笔為你收集整理的TensorFlow--线性回归问题初步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos 7安装
- 下一篇: 一个时代的终结:为什么是时候放弃ITOM