TensorFlow 線性回歸實現

2021-08-29 18:39:49 字數 3974 閱讀 3210

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import numpy as np

import tensorflow as tf

import matplotlib.pyplot as plt

if __name__ == '__main__':

# 給引數賦值

learning_rate = 0.01

training_epochs = 1000

display_steps = 50

train_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])

train_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])

n_samples = train_x.shape[0]

# 定義資料流圖上的結點

# 輸入

x = tf.placeholder("float")

y = tf.placeholder("float")

# 權重,randn沒有引數代表隨機乙個float值

w = tf.variable(np.random.randn(), name="weight")

b = tf.variable(np.random.randn(), name="bias")

pred = tf.add(tf.multiply(x, w), b)

# reduce_sum僅乙個引數,則對所有元素求和

cost = tf.reduce_sum(tf.pow(pred - y, 2)) / (2 * n_samples)

optimizer = tf.train.gradientdescentoptimizer(learning_rate).minimize(cost)

init = tf.global_variables_initializer()

# 執行資料流圖

with tf.session() as sess:

sess.run(init)

for epoch in range(training_epochs):

for x, y in zip(train_x, train_y): # zip生成每個訓練資料對,注意這裡每次只能取乙個訓練資料

sess.run(optimizer, feed_dict=)

if (epoch + 1) % display_steps == 0:

# 列印出損失函式,注意這裡要遍歷所有的訓練資料

temp_cost = sess.run(cost, feed_dict=)

print("epoch:", '%04d' % (epoch + 1), "cost=", temp_cost, "w=", sess.run(w), "b=", sess.run(b))

print("optimization finished!")

training_cost = sess.run(cost, feed_dict=)

print("training cost=", training_cost, "w=", sess.run(w), "b=", sess.run(b))

plt.plot(train_x, train_y, 'ro', label='original data')

plt.plot(train_x, sess.run(w) * train_x + sess.run(b), label='fitted line')

plt.legend()

plt.show()

# 測試資料集

tensorflow入門線性回歸

實際上編寫tensorflow可以總結為兩步.1 組裝乙個graph 2 使用session去執行graph中的operation。當使用tensorflow進行graph構建時,大體可以分為五部分 1 為輸入x與輸出y定義placeholder 2 定義權重w 3 定義模型結構 4 定義損失函式 ...

TensorFlow實踐 線性回歸

通過生 工資料集合,基於tensorflow實現線性回歸 利用隨機數在直線y 2.321 x 1.564的基礎上,加上一定的噪音,產生在 1,1 範圍的資料。x,y是兩個佔位符,用於儲存訓練過程中的資料,w,b是兩個變數,訓練就是不斷地改變這兩個值,以使模型達到最好。train epochs和lea...

Tensorflow 實現線性回歸

線性回歸,是利用數理統計中回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法,運用十分廣泛。其表達形式為y w x e,e為誤差服從均值為0的正態分佈。說白了就是求資料之間關係的一種形式。回歸分析中,只包括乙個自變數和乙個因變數,且二者的關係可用一條直線近似表示,這種回歸分析稱...