本文介紹乙個簡單的線性回歸例子:通過乙個隨機初始點(a1,b1)來擬合y=a*x+ b,
我們要擬合的函式模型:y= 6 * x + 3.68
**如下:
#匯入必要的模組
import tensorflow as tf
import numpy as np
#定義要擬合的函式模型
x =np.random.rand(
1000
)#隨機選擇1000個數進行1000次迭代
y =6
*x+3.68
#擬合過程中的初始點(隨機選擇乙個點)
weight=tf.variable(1.
,dtype=tf.float32,name=
'weight'
)bias=tf.variable(1.
,dtype=tf.float32,name=
'bias'
)#定義擬合函式
defmodel
(xs)
: logits=tf.multiply(xs,weight)
+bias
return logits
opt=tf.optimizers.adam(1e-
1)#選擇優化器,是一種梯度下降的方法
for xs,ys in
zip(x,y)
: xs=np.reshape(xs,[1
])#將資料reshape為一維張量
ys=np.reshape(ys,[1
])#用梯度下降法進行資料迭代
with tf.gradienttape(
)as tape:
_loss=tf.reduce_mean(tf.
pow(
(model(xs)
-ys),2
))/(
2*1000
) grads=tape.gradient(_loss,
[weight,bias]
)zip
(grads,
[weight,bias]))
print
('training loss is:'
,_loss.numpy())
print
(weight)
print
(bias)
1000此迭代以後的結果如下:
最後我們看到經過1000次的迭代,得到weight=5.999995和bias=3.6800025,也就是得到的擬合函式為 y =5.999995 * x + 3.6800025, 和實際函式y= 6 * x + 3.68相比誤差很小。
tensorflow2 0視訊記憶體設定
遇到乙個問題 新買顯示卡視訊記憶體8g但是tensorflow執行的時候介面顯示只有約6.3g的視訊記憶體可用,如下圖 即限制了我的視訊記憶體,具體原因為什麼我也不知道,但原來的視訊記憶體小一些的顯示卡就沒有這個問題。目前的解決辦法是 官方文件解決 然後對應的中文部落格 總結一下,就是下面的兩個辦法...
Tensorflow2 0 啟用函式
常用啟用函式及對應特點 神經網路結構的輸出為所有輸入的加權和,這導致整個神經網路是乙個線性模型。而線性模型不能解決異或問題,且面對多分類問題,也顯得束手無策。所以為了解決非線性的分類或回歸問題,啟用函式必須是非線性函式。神經網路中啟用函式的主要作用是提供網路的非線性建模能力。這是因為反向傳播演算法就...
初步了解TensorFlow2 0
為什麼要學習tensorflow?深度學習能夠更好地抽取資料中的規律,從而給公司帶來更大的價值 tensorflow是強大且靈活的開源框架 使用廣泛 2.0更加強大 易用 成熟 tensorflow是什麼?是google的開源軟體庫 採用資料流圖,用於數值計算 支援多平台 gpu cpu 移動裝置 ...