在學完前幾天的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...