通過生**工資料集合,基於tensorflow實現線性回歸
利用隨機數在直線y=2.321*x+1.564的基礎上,加上一定的噪音,產生在(-1,1)範圍的資料。
x,y是兩個佔位符,用於儲存訓練過程中的資料,w,b是兩個變數,訓練就是不斷地改變這兩個值,以使模型達到最好。
train_epochs和learning_rate是兩個超引數,分別表示訓練的總次數,這兩個引數可以根據訓練的效果來改變。
loss_function是損失函式,程式的目標就是讓這個損失函式的值最小,這裡用的是模型的輸出值與輸入的資料y之間的差的平方的平均數來表示,optimizer是優化器,這裡採用的是梯度下降演算法。
sess = tf.session(
)init = tf.global_variables_initializer(
)sess.run(init)
for epoch in
range
(train_epochs)
:for xi,yi in
zip(x_data,y_data)
: _,loss = sess.run(
[optimizer,loss_function]
,feed_dict=
)
訓練模型時,先啟動會話,然後初始化變數,之後就是正式的去訓練模型,即在每個輪次中,通過feed_dict函式,將資料餵給模型,模型就可以根據這些資料來訓練。
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
np.random.seed(5)
x_data = np.linspace(-1
,1,100
)#2.321*x+1.564
w0 =
2.321
b0 =
1.564
y_data = w0 * x_data + b0 + np.random.randn(
*x_data.shape)
*0.4
#影象顯示
plt.figure(
"image1"
)plt.rcparams[
'figure.figsize']=
(10,6
)plt.scatter(x_data,y_data)
plt.plot(x_data,w0* x_data + b0,
'red'
)#構建模型
x = tf.placeholder(
"float"
,name =
"x")
y = tf.placeholder(
"float"
,name =
"y")
defmodel
(x,w,b)
:return tf.multiply(x,w)
+bw = tf.variable(
1.0,name =
"w0"
)b = tf.variable(
0.0,name =
"b0"
)pred = model(x,w,b)
train_epochs =
10learning_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(
)plt.figure(
"image2"
)sess.run(init)
for epoch in
range
(train_epochs)
:for xi,yi in
zip(x_data,y_data)
: _,loss = sess.run(
[optimizer,loss_function]
,feed_dict=
) w_temp = w.
eval
(session = sess)
b_temp = b.
eval
(session = sess)
plt.plot(x_data,w_temp*x_data + b_temp)
print
("原直線:"
,"w:"
,w0,
" b:"
,b0)
print
("訓練結果:"
,"w:"
,sess.run(w)
," b:"
,sess.run(b)
)
tensorflow實踐 02 線性回歸
為了進一步熟悉tensorflow的基本操作,下面通過乙個線性回歸的小例子簡單展示一下tensorflow的基本使用流程。由於是簡單的線性回歸,我們自己生成乙份隨即資料作為演示就可以了。def createdata w,b x np.linspace 1,1,100 y w x b np.rando...
TensorFlow實踐 擬合線性方程
假設有一組資料集,其中x與y的對應關係為 y 3x 0.5。我們想讓神經網路學習這些樣本,並從中找到這個規律,通俗來說就是讓神經網路學習到方程中的引數3和0.5 首先用numpy生成1個含有100個資料的隨機序列x,然後寫出y與x的對應關係。import tensorflow as tf impor...
TensorFlow 實現Softmax 回歸模型
importtensorflowastf importnumpyasnp importtensorflow.examples.tutorials.mnist.input dataasinput data mnist input data.read data sets mnist data one h...