tensorflow實踐 02 線性回歸

2021-08-07 22:24:28 字數 1708 閱讀 4237

為了進一步熟悉tensorflow的基本操作,下面通過乙個線性回歸的小例子簡單展示一下tensorflow的基本使用流程。

由於是簡單的線性回歸,我們自己生成乙份隨即資料作為演示就可以了。

def

createdata

(w,b):

x = np.linspace(-1,1,100)

y = w*x + b + np.random.randn(*x.shape)*w*0.1

return x,y

生成資料如下:

上面生成的資料分布是二維平面上的直線,那麼公式為y=

f(x)

=wx+

b x和y是輸入的訓練資料,用佔位符表示

#x = tf.placeholder(tf.float32,shape = trainx.shape) 預設shape=none表示任意型別

#y = tf.placeholder(tf.float32,shape = trainy.shape)

x = tf.placeholder(tf.float32)

y = tf.placeholder(tf.float32)

需要訓練的引數是w和b,因為會在每一次迭代時更新,所以需要定義為變數

w = tf.variable(np.random.randn(),name='weight')

b = tf.variable(np.random.randn(),name='bias')

這裡公式非常簡單只有乙個函式y=

wx+b

#也可以y_pred = tf.add(tf.multiply(w,x) , b)   

y_pred = w*x + b

這裡用l2損失

#也可以loss = tf.reduce_sum(tf.squared_difference(y , y_pred))

loss = tf.reduce_sum(tf.square(y - y_pred))

正則化

loss += 1e-6*tf.global_norm([w])
使用gradientdescentoptimizer優化器,tensorflow內建了一些優化器,可以直接使用。

trainop = tf.train.gradientdescentoptimizer(0.001).minimize(loss)
epochs = 1000

with tf.session() as sess:

sess.run(tf.initialize_all_variables())

for epoch in range(epochs):

w,b = sess.run([trainop,w,b],feed_dict=)

訓練結束後得到最終的w和b,畫出來看看結果是否正確:

完整**

《一線架構師實踐指南》閱讀筆記02

架構 是人們為了提高生活質量,進而為了提高生產力,接著為了提高生產效率,而做出的對目標的有機的分割。這種分割與建築的架構是一樣,對目標內部進行空間切分,又留下門窗與各部分進行連通,讓各部分相互隔離而又可以有效的溝通。就好像我們的社會,我們每個人通過自己的工作掙到錢 分割 讓後通過錢與物的交易 溝通 ...

《一線架構師實踐指南》閱讀筆記02

一 既然了解了什麼是軟體架構,那麼接下來就來看看它產生的原因 一線架構師實踐指南 中說了五點,我的理解是 架構 是人們為了提高生活質量,進而為了提高生產力,接著為了提高生產效率,而做出的對目標的有機的分割。這種分割與建築的架構是一樣,對目標內部進行空間切分,又留下門窗與各部分進行連通,讓各部分相互隔...

一線架構師實踐指南閱讀筆記02

細化架構的故事有兩個,第乙個是架構和方案的關係 方案 專案 需求 架構。第二個故事是各個職業在討論架構的定義,每個職業各抒己見,但都有盲人摸象的感覺。最後書中給的建議是盡可能全面的思考問題,盡可能全面的覆蓋多個職業。這是乙個很客觀的評價,但在實際生活中有點理想化,個人感覺應該是盡量多的討論,通過討論...