TensorFlow學習之線性迴歸

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np

# 使用 NumPy 生成假數據(phony data), 總共 100 個點.
x_data = np.float32(np.random.rand(2,100))  # 隨機輸入,2行100列
y_data = np.dot([0.100, 0.200], x_data) + 0.300  # 返回的是兩個數組的點積,如果是二維數組(矩陣)之間的運算,則得到的是矩陣積
    
# 構造一個線性模型  構建圖
b = tf.Variable(tf.zeros([1]))  # b初始化爲0
W = tf.Variable(tf.random_uniform([1, 2], -2.0, 2.0))  # b和W是要學習的參數
y = tf.matmul(W, x_data) + b  # 創建一個矩陣乘法 matmul op

# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))  # y爲估計值,y_data爲真實值
optimizer = tf.train.GradientDescentOptimizer(0.5)  # 學習率爲0.5
train = optimizer.minimize(loss)  # 訓練

# 初始化變量
init = tf.initialize_all_variables()

# 啓動圖 (graph)
sess = tf.Session()  # 創建一個會話,當上下文管理器退出時會話關閉和資源釋放自動完成
#sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(init)  # 初始化

# 擬合平面
for step in range(0, 201):  # step爲循環次數
    sess.run(train)  # 訓練
    if step % 20 == 0:
        print (step, sess.run(W), sess.run(b))  # Variable要在sess.run()才能輸出

 

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