TensorFlow訓練單特徵和多特徵的線性回歸

2021-09-22 21:43:55 字數 3202 閱讀 2997

在tensorflow中進行線性回歸處理重點是將樣本和樣本特徵矩陣化。

單特徵回歸模型為:y=

wx+b

構建模型

x = tf.placeholder(tf.float32, [none, 1])

w = tf.variable(tf.zeros([1, 1]))

b = tf.variable(tf.zeros([1]))

y = tf.matmul(x, w) + b

y = tf.placeholder(tf.float32, [none, 1])

構建成本函式

cost = tf.reduce_mean(tf.square(y-y))
梯度下降最小化成本函式,梯度下降步長為0.01

train_step = tf.train

.gradientdescentoptimizer(0.01).minimize(cost)

完整**,迭代次數為10000

import tensorflow as tf

x = tf.placeholder(tf.float32, [none, 1])

w = tf.variable(tf.zeros([1, 1]))

b = tf.variable(tf.zeros([1]))

y = tf.matmul(x, w) + b

y = tf.placeholder(tf.float32, [none, 1])

# 成本函式 sum(sqr(y_-y))/n

cost = tf.reduce_mean(tf.square(y-y))

# 用梯度下降訓練

train_step = tf.train.gradientdescentoptimizer(0.01).minimize(cost)

init = tf.initialize_all_variables()

sess = tf.session()

sess.run(init)

x_train = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]

y_train = [[10],[11.5],[12],[13],[14.5],[15.5],[16.8],[17.3],[18],[18.7]]

for i in range(10000):

sess.run(train_step, feed_dict=)

print("w:%f" % sess.run(w))

print("b:%f" % sess.run(b))

多特徵回歸模型為:y=

(w1x

1+w2

x2+.

..+w

nxn)

+b,寫為y=w

x+b。

y為m行1列矩陣,x為m行n列矩陣,w為n行1列矩陣。tensorflow中用如下來表示模型。

構建模型

x = tf.placeholder(tf.float32, [none, n])

w = tf.variable(tf.zeros([n, 1]))

b = tf.variable(tf.zeros([1]))

y = tf.matmul(x, w) + b

y = tf.placeholder(tf.float32, [none, 1])

構建成本函式

cost = tf.reduce_mean(tf.square(y-y))
梯度下降最小化成本函式,梯度下降步長為0.01

train_step = tf.train

.gradientdescentoptimizer(0.01).minimize(cost)

完整**,迭代次數為10000

import tensorflow as tf

x = tf.placeholder(tf.float32, [none, 2])

w = tf.variable(tf.zeros([2, 1]))

b = tf.variable(tf.zeros([1]))

y = tf.matmul(x, w) + b

y = tf.placeholder(tf.float32, [none, 1])

# 成本函式 sum(sqr(y_-y))/n

cost = tf.reduce_mean(tf.square(y-y))

# 用梯度下降訓練

train_step = tf.train.gradientdescentoptimizer(0.01).minimize(cost)

init = tf.initialize_all_variables()

sess = tf.session()

sess.run(init)

x_train = [[1, 2], [2, 1], [2, 3], [3, 5], [1, 3], [4, 2], [7, 3], [4, 5], [11, 3], [8, 7]]

y_train = [[7], [8], [10], [14], [8], [13], [20], [16], [28], [26]]

for i in range(10000):

sess.run(train_step, feed_dict=)

print("w0:%f" % sess.run(w[0]))

print("w1:%f" % sess.run(w[1]))

print("b:%f" % sess.run(b))

*****===廣告時間*****===

鄙人的新書《tomcat核心設計剖析》已經在京東銷售了,有需要的朋友可以到 進行預定。感謝各位朋友。

為什麼寫《tomcat核心設計剖析》

TensorFlow訓練Logistic回歸

如下圖,可以清晰看到線性回歸和邏輯回歸的關係,乙個線性方程被邏輯方程歸一化後就成了邏輯回歸。對於二分類,輸出假如線性回歸模型為,則要將z轉成y,即y g z 於是最直接的方式是用單位階躍函式來表示,即 如圖,但階躍函式不連續,於是用sigmoid函式替代之,為 如圖,則有,即logistics函式,...

Tensorflow訓練迴圈

def fit loop model,inputs,targets,sample weights none,class weight none,val inputs none,val targets none,val sample weights none,batch size none,epoch...

tensorflow 資料訓練

一 資料訓練遇到問題 excle資料,如何進行訓練?excle資料,如何resize 呢?目前思路 tfrecords 採用 numpy的方法進行處理 學習方法 從檔案中讀取資料 標準化格式tfrecords記錄 二 資料預處理 numpy 不能有中文,要採用decode等方法 不能夠有百分號?目前...