tensorflow2 0實現一元線性回歸

2021-10-10 02:55:11 字數 2286 閱讀 9306

參考:

看看就明白了

from __future__ import absolute_import, division, print_function

import tensorflow as tf

import numpy as np

import matplotlib.pyplot as plt

# 學習率

learning_rate =

0.01

# 迭代次數

training_steps =

1000

display_step =

50# 訓練資料

x = np.array(

[3.3

,4.4

,5.5

,6.71

,6.93

,4.168

,9.779

,6.182

,7.59

,2.167

,7.042

,10.791

,5.313

,7.997

,5.654

,9.27

,3.1])

y = np.array(

[1.7

,2.76

,2.09

,3.19

,1.694

,1.573

,3.366

,2.596

,2.53

,1.221

,2.827

,3.465

,1.65

,2.904

,2.42

,2.94

,1.3])

# 取出陣列x的長度

n_samples = x.shape[0]

# 隨機初始化權重,偏置

w = tf.variable(np.random.randn(

), name=

"weight"

)b = tf.variable(np.random.randn(

), name=

"bias"

)# 線性回歸(wx+b)

deflinear_regression

(x):

return w * x + b

# 均方差

defmean_square

(y_pred,y_true)

:return tf.reduce_sum(tf.

pow(y_pred - y_true,2)

)/(2

* n_samples)

# 隨機梯度下降優化器

optimizer = tf.optimizers.sgd(learning_rate)

# 優化過程

defrun_optimization()

:# 將計算封裝在gradienttape中以實現自動微分

with tf.gradienttape(

)as g:

pred = linear_regression(x)

loss = mean_square(pred, y)

# 計算梯度

# print("loss is ", loss)

gradients = g.gradient(loss,

[w, b]

)# 按gradients更新 w 和 b

zip(gradients,

[w, b]))

# 針對給定訓練步驟數開始訓練

for step in

range(1

, training_steps +1)

:# 執行優化以更新w和b值

run_optimization(

)if step % display_step ==0:

pred = linear_regression(x)

loss = mean_square(pred, y)

print

("step: %i, loss: %f, w: %f, b: %f"

%(step, loss, w.numpy(

), b.numpy())

)# 繪製圖

plt.plot(x, y,

'ro'

, label=

'original data'

)plt.plot(x, np.array(w * x + b)

, label=

'fitted line'

)plt.legend(

)plt.show(

)

Tensorflow2 0簡單應用 一

我是初學者 參考 1.匯入tf.keras tensorflow2推薦使用keras構建網路,常見的神經網路都包含在keras.layer中 最新的tf.keras的版本可能和keras不同 import tensorflow as tf from tensorflow.keras import l...

Tensorflow2 0之卷積層實現

在 tensorflow 中,通過tf.nn.conv2d 函式可以方便地實現2d 卷積運算。tf.nn.conv2d基於輸入?和卷積核?進行卷積運算,得到輸出?其中?表示輸入通道數,表示卷積核的數量,也是輸出特徵圖的通道數。例如 in 1 x tf.random.normal 2 5,5 3 模擬...

tensorflow2 0視訊記憶體設定

遇到乙個問題 新買顯示卡視訊記憶體8g但是tensorflow執行的時候介面顯示只有約6.3g的視訊記憶體可用,如下圖 即限制了我的視訊記憶體,具體原因為什麼我也不知道,但原來的視訊記憶體小一些的顯示卡就沒有這個問題。目前的解決辦法是 官方文件解決 然後對應的中文部落格 總結一下,就是下面的兩個辦法...