TensorFlow1.x入門(4)——線性迴歸

系列文章

本教程有同步的github地址

0. 統領篇

1. 計算圖的創建與啓動

2. 變量的定義及其操作

3. Feed與Fetch

4. 線性迴歸

5. 構建非線性迴歸模型

6. 簡單分類問題

7. Dropout與優化器

8. 手動調整學習率與TensorBoard

9. 卷積神經網絡(CNN)

10. 循環神經網絡(RNN)

11. 模型的保存與恢復

知識點

線性迴歸:是迴歸問題,形式如y=k×x+by=k\times x + b
np.random.rand()通過這個函數可以生成一個或者一組從0-1均勻分佈的隨機樣本值。隨機樣本的取值範圍是[0, 1)。
tf.square()計算平方,針對一個或者一組數據進行平方計算,即x^2
tf.reduce_mean()計算平均數,計算一個list的平均數。
tf.train.GradientDescentOptimizer()定義SGD優化器。

示例

#%% md
# 線性迴歸
#%%
import tensorflow as tf
import numpy as np
#%% md
生成隨機的數據點100個

np.random.rand()函數

作用:
通過本函數可以返回一個或一組服從“0~1”均勻分佈的隨機樣本值。隨機樣本取值範圍是\[0,1),不包括1#%%
x_data = np.random.rand(100)
y_data = 0.1 * x_data +0.2
#%%
x_data
#%%
y_data
#%% md
構造線性模型
#%%
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k * x_data + b
#%%
k
#%%
b
#%%
y
#%% md
創建二次代價函數

`tf.square()`計算平方

`tf.reduce_mean()`計算均值
#%%
loss = tf.reduce_mean(tf.square(y - y_data))
#%%
loss
#%% md
定義優化器
#%%
optim = tf.train.GradientDescentOptimizer(0.2)
#%%
optim
#%% md
最小化代價函數
#%%
train_step = optim.minimize(loss)
#%%
train_step
#%% md
初始化全部的變量
#%%
init = tf.global_variables_initializer()
#%% md
訓練迭代
#%%
with tf.Session() as sess:
    sess.run(init)
    for step in range(2000):
        sess.run(train_step)
        if step % 20 == 0:
            k_value, b_value, loss_value = sess.run([k, b, loss])
            print("k={}, b={}, loss={}".format(k_value, b_value, loss_value))
#%%

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章