Tensorflow 多元線性回歸實現的總結

2021-09-24 04:49:34 字數 2860 閱讀 1334

tensorflow 多元線性回歸實現的總結

1,定義演算法公式,也就是神經網路forward時的計算

2,定義loss,選定優化器,並指定優化器優化loss

3,迭代地對資料進行訓練

4,在測試集或驗證集上對準確率進行評測

1,定義演算法公式,也就是神經網路forward時的計算

from tensorflow.examples.tutorials.mnist import input_data

import tensorflow as tf

# mn.source_url = ""

my_mnist = input_data.read_data_sets(

"mnist_data_bak/"

, one_hot=

true

)# the mnist data is split into three parts:

# 55,000 data points of training data (mnist.train)

# 10,000 points of test data (mnist.test), and

# 5,000 points of validation data (mnist.validation).

# each image is 28 pixels by 28 pixels

# 輸入的是一堆,none表示不限輸入條數,784表示每張都是乙個784個畫素值的一維向量

# 所以輸入的矩陣是none乘以784二維矩陣

x = tf.placeholder(dtype=tf.float32, shape=

(none

,784))

# 初始化都是0,二維矩陣784乘以10個w值

w = tf.variable(tf.zeros(

[784,10

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

]))y = tf.nn.softmax(tf.matmul(x, w)

+ b)

# 訓練

# labels是每張都對應乙個one-hot的10個值的向量

y_ = tf.placeholder(dtype=tf.float32, shape=

(none,10

))

2,定義loss,選定優化器,並指定優化器優化loss

# 定義損失函式,交叉熵損失函式

# 對於多分類問題,通常使用交叉熵損失函式

# reduction_indices等價於axis,指明按照每行加,還是按照每列加

cross_entropy = tf.reduce_mean(

-tf.reduce_sum(y_ * tf.log(y)

,reduction_indices=[1

]))train_step = tf.train.gradientdescentoptimizer(

0.5)

.minimize(cross_entropy)

3,迭代地對資料進行訓練

# 訓練

# labels是每張都對應乙個one-hot的10個值的向量

y_ = tf.placeholder(dtype=tf.float32, shape=

(none,10

))# 定義損失函式,交叉熵損失函式

# 對於多分類問題,通常使用交叉熵損失函式

# reduction_indices等價於axis,指明按照每行加,還是按照每列加

cross_entropy = tf.reduce_mean(

-tf.reduce_sum(y_ * tf.log(y)

,reduction_indices=[1

]))train_step = tf.train.gradientdescentoptimizer(

0.5)

.minimize(cross_entropy)

4,在測試集或驗證集上對準確率進行評測

# 評估

# tf.argmax()是乙個從tensor中尋找最大值的序號,tf.argmax就是求各個**的數字中概率最大的那乙個

correct_prediction = tf.equal(tf.argmax(y,1)

, tf.argmax(y_,1)

)# 用tf.cast將之前correct_prediction輸出的bool值轉換為float32,再求平均

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)

)# 初始化變數

sess = tf.interactivesession(

)tf.global_variables_initializer(

).run(

)for _ in

range

(1000):

batch_xs, batch_ys = my_mnist.train.next_batch(

100)

sess.run(train_step, feed_dict=

)print

("trainset batch acc : %s "

% accuracy.

eval()

)print

("validset acc : %s"

% accuracy.

eval()

)# 測試

print

("testset acc : %s"

% accuracy.

eval()

)

線回與非線回 sklearn 多元線性回歸

前面用自寫函式解決了多元問題,現在用sklearn庫來解決多元線性問題 老朋友,不介紹了 import numpy as np from numpy import genfromtxt 把線性回歸模型庫單獨匯出來 from sklearn import linear model 把畫圖工具庫匯出來 ...

多元線性回歸

多元線性回歸的基本原理和基本計算過程與一元線性回歸相同,但由於自變數個數多,計算相當麻煩,一般在實際中應用時都要借助統計軟體。介紹多元線性回歸的一些基本問題。但由於各個自變數的單位可能不一樣,比如說乙個消費水平的關係式中,工資水平 受教育程度 職業 地區 家庭負擔等等因素都會影響到消費水平,而這些影...

多元線性回歸

from numpy import genfromtxt 用來讀取資料轉化為矩陣 from sklearn import linear model 含有回歸的模型 datapath r c users qaq desktop delivery dummy.csv 路徑 deliverydata ge...