4擬合線性函式的k和b
import tensorflow as tf
import numpy as np
#使用numpy生成100個隨機點
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2 #這裡我們設定已知直線的k為0.1 b為0.2得到y_data
#構造一個線性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b
#二次代價函式(白話:兩數之差平方後取 平均值)
loss=tf.reduce_mean(tf.square(y_data-y))
#定義一個梯度下降法來進行訓練的優化器(optimizer其實就是按梯度下降的方法改變線性模型k和b的值,注意這裡的k和b一開始初始化都為0.0,後來慢慢向0.1、0.2靠近)
optimizer=tf.train.GradientDescentOptimizer(0.2) #這裡的0.2是梯度下降的係數(學習率)也可以是0.3...
#最小化代價函式(訓練的方式就是使loss值最小,loss值可能是隨機初始化100個點與模型擬合出的100個點差的平方相加...等方法)
train=optimizer.minimize(loss)
#初始化變數
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
#迭代,每次迭代run(train)即最小化loss
for step in range(201):
sess.run(train)
if step%20==0:
print(step,sess.run([k,b])) #這裡使用fetch的方式只是列印k、b的值,每20次列印一下,改變k、b的值是梯度下降優化器的工作
0 [0.054449033, 0.100353315]
20 [0.10394257, 0.19785142]
40 [0.102303684, 0.19874461]
60 [0.10134606, 0.19926646]
80 [0.100786515, 0.19957139]
100 [0.10045955, 0.19974957]
120 [0.10026849, 0.19985369]
140 [0.10015687, 0.19991452]
160 [0.10009168, 0.19995004]
180 [0.10005357, 0.1999708]
200 [0.10003129, 0.19998296]
該系列基礎例項參考視訊
相關文章
- 平凡的函式 線性篩積性函式函式
- Origin進行多元線性迴歸、指數擬合和非線性曲面擬合
- pytorch擬合sin函式PyTorch函式
- Java 使用 Apache commons-math3 線性擬合、非線性擬合例項(帶效果圖)JavaApache
- js的curry和函式組合JS函式
- python來擬合Langmuir非線性方程PythonUI
- 15.3 極限函式與和函式性質函式
- 蔡高廳高等數學03-函式的有界性-單調性-週期性-奇偶性-複合函式-反函式函式
- 虛擬函式,虛擬函式表函式
- 虛擬函式 純虛擬函式函式
- js函式中的if判斷和a==b判斷JS函式
- 為複合函式和反函式做好準備函式
- JS 函式式概念: 管道 和 組合JS函式
- B.日記和尤拉函式函式
- Python函式屬性和PyCodeObjectPython函式Object
- Python資料分析--Numpy常用函式介紹(4)--Numpy中的線性關係和資料修剪壓縮Python函式
- 結合 async 非同步函式 - 提高 Promise 的易用性非同步函式Promise
- 尤拉函式性質和模版函式
- 介面、虛擬函式、純虛擬函式、抽象類函式抽象
- 抽象基類和純虛擬函式抽象函式
- JavaScript4:函式和閉包JavaScript函式
- 非線性支援向量機 與核函式函式
- 降低過擬合和欠擬合的方法
- [Python人工智慧] 七.加速神經網路、激勵函式和過擬合Python人工智慧神經網路函式
- 虛擬函式的呼叫原理函式
- <<從0到1學C++>> 第7篇 多型性和虛擬函式C++多型函式
- 1.13 JavaScript4:函式和閉包JavaScript函式
- (十一)KPCA非線性降維與核函式PCA函式
- Dotnet的區域性函式和委託的對比函式
- [Lang] 虛擬函式函式
- 詳解C++中的多型和虛擬函式C++多型函式
- Rust中的into函式和from函式Rust函式
- Python擬合曲線Python
- JavaScript函式的反應性JavaScript函式
- StretchBlt函式和BitBlt函式的區別和用法函式
- 內聯(inline)函式與虛擬函式(virtual)的討論inline函式
- 虛擬函式的實現原理函式
- strlen函式的模擬實現函式