tensorflow學習04 構造線性回歸模型

2022-07-05 16:54:13 字數 2233 閱讀 3631

在學完前幾天的tensorflow基本變數定義和矩陣定義,今天我學習了tensorflow的構造線性回歸模型

構造資料並呼叫matplotlib進行顯示

源**

#

匯入numpy、tensorflow、matplotlib

import

numpy as np

import

tensorflow as tf

import

matplotlib.pyplot as plt

#隨機生成1000個點,圍繞在y=0. 1x+0. 3的直線周圍

#生成點數

num_points = 1000

#點集合,包含座標x和座標y

vectors_set =

for i in

range(num_points):

#生成以0為均值,0.55為標準差的x的高斯初始化

x1 = np.random.normal(0.0,0.55)

#讓y以y=0.1*x+0.3上下隨機波動

y1= x1*0.1+0.3+ np.random.normal(0.0,0.03)

#將生成的資料放入點集合中

#讀取生成的資料

x_data = [v[0] for v in

vectors_set]

y_data = [v[1] for v in

vectors_set]

#展示資料

plt.scatter(x_data,y_data,c='g'

) plt.show()

執行結果:

初始化線性回歸重要引數w和b並呼叫梯度下降演算法進行訓練

源**

#

生成一維的矩陣,初始值是0

b = tf.variable(tf.zeros([1]), name = 'b'

)#經過計算得預估值y

y = w*x_data +b

#以預估值y和實際值y_data之間的均方差作為損失

loss = tf.reduce_mean(tf.square(y-y_data), name = '

loss')

#採用梯度下降法來優化引數

optimizer = tf.train.gradientdescentoptimizer(0.5)

#訓練的過程就是最小化這個誤差值

train = optimizer.minimize(loss, name= '

train')

#開啟會話

sess =tf.session()

init =tf.global_variables_initializer()

#對變數進行初始化

sess.run(init)

#輸出顯示初始化的w和b是多少

print("

w=",sess.run(w),"

b=",sess.run(b),"

loss=

",sess.run(loss))

#用for進行20次訓練

for n in range(30):

sess.run(train)

#輸出訓練中的w和b

print("

w=",sess.run(w),"

b=",sess.run(b),"

loss=

",sess.run(loss))

執行結果

可以看出,隨著損失loss的減小,生成的w越來越靠0.1,生成的b越來越靠近0.3

繪製擬合直線

源**

#

已經構造好的一千個點

plt.scatter(x_data,y_data,c='g'

) #構造直線

plt.plot(x_data,sess.run(w)*x_data+sess.run(b))

plt.show()

執行結果

tensorflow 學習 學習中

基於 virtualenv 的安裝 在 linux 上 sudo apt get install python pip python dev python virtualenv 在 mac 上 sudo easy install pip 如果還沒有安裝 pip sudo pip install up...

tensorflow學習筆記

tensorflow安裝可以直接通過命令列或者原始碼安裝,在此介紹tensorflow8命令列安裝如下 安裝tensorflow sudo pip install upgrade 另外,解除安裝tensorflow命令為 sudo pip uninstall tensorflow tensorflo...

Tensorflow學習筆記

1.如何在虛擬機器中安裝tensor flow 1 首先安裝pip pip install 2 pip install 2.學習tensorflow需要學習 python and linux 3.使用 tensorflow,你必須明白 tensorflow 1 使用圖 graph 來表示計算任務.2...