利用TensorFlow實現線性回歸模型

2021-09-08 23:12:30 字數 1512 閱讀 5925

準備資料:

import

numpy as np

import

tensorflow as tf

import

matplotlib.pylot as plt

#隨機生成1000個點,圍繞在y=0.1x+0.3的直線周圍

num_points = 1000vectors_set =

for i in

range(num_points):

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

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='r'

)plt.show()

實現線性回歸:

#

生成1維w矩陣,取值是[-1, 1]之間的隨機數

w = tf.variable(tf.random_uniform([1], -1.0, 1.0), name='w'

)#生成1維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() #

這種定義session的方法也可以,但是不推薦。

init =tf.global_variables_initializer()

sess.run(init)

#初始化的w和b是多少

print("

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

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

loss=

", sess.run(loss))

#執行20次訓練

for step in range(20):

sess.run(train)

#輸出訓練好的w和b

print("

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

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

loss=

", sess.run(loss))

利用tensorflow實現自編碼

1 原理 監督神經網路的本質就是對特徵的不斷學習挖掘的過程,而中間層就可以理解為對上一層特徵的提取,自編碼就是對神經網路中間層的提取,所以我們可以把高維的資料經過幾層對映到低維,在進行還原的過程 2 測試資料 構建2個三維的球,將其對映到2維,檢視資料分布 def make ball r 2,a 0...

利用padding 實現高度可控的分隔線

一.實現分隔線的方法 未理解 不是說span元素垂直方向設定怕padding不影響嗎?2 登陸 span span 註冊3 div css 1 span 實現原理 開啟chrome瀏覽器開發者工具進行盒子模型的檢視。圖1 將span標籤的margin left設定為12px,對應效果如圖1。圖2 為...

利用小trick加速tensorflow的訓練

tensorflow 1.13.1 1.tf.data並行讀取tfrecord資料 def parse exp example features tfrecord解析 return features def input fn filenames train data tfrecord batch s...