欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何通過神經(jīng)網(wǎng)絡(luò)實現(xiàn)線性回歸的擬合

 更新時間:2023年05月31日 11:06:35   作者:逍遙John  
這篇文章主要介紹了如何通過神經(jīng)網(wǎng)絡(luò)實現(xiàn)線性回歸的擬合問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

通過神經(jīng)網(wǎng)絡(luò)實現(xiàn)線性回歸的擬合

訓(xùn)練過程

只訓(xùn)練一輪的算法是:

for 循環(huán),直到所有樣本數(shù)據(jù)使用完畢:

讀取一個樣本數(shù)據(jù)
前向計算
反向傳播
更新梯度

Python 代碼實現(xiàn)

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
class SimpleDataReader(object):
    def __init__(self, data_file):
        self.train_file_name = data_file
        self.num_train = 0
        self.XTrain = None
        self.YTrain = None
     # read data from file
    def ReadData(self):
        data = np.load(self.train_file_name)
        self.XTrain = data["data"]
        self.YTrain = data["label"]
        self.num_train = self.XTrain.shape[0]
        #end if
    # get batch training data
    def GetSingleTrainSample(self, iteration):
        x = self.XTrain[iteration]
        y = self.YTrain[iteration]
        return x, y
    def GetWholeTrainSamples(self):
        return self.XTrain, self.YTrain
class NeuralNet(object):
    def __init__(self, eta):
        self.eta = eta
        self.w = 0
        self.b = 0
    def __forward(self, x):
        z = x * self.w + self.b
        return z
    def __backward(self, x,y,z):
        dz = z - y
        db = dz
        dw = x * dz
        return dw, db
    def __update(self, dw, db):
        self.w = self.w - self.eta * dw
        self.b = self.b - self.eta * db
    def train(self, dataReader):
        for i in range(dataReader.num_train):
            # get x and y value for one sample
            x,y = dataReader.GetSingleTrainSample(i)
            # get z from x,y
            z = self.__forward(x)
            # calculate gradient of w and b
            dw, db = self.__backward(x, y, z)
            # update w,b
            self.__update(dw, db)
            # end for
    def inference(self, x):
        return self.__forward(x)
if __name__ == '__main__':
    # read data
    sdr = SimpleDataReader('ch04.npz')
    sdr.ReadData()
    # create net
    eta = 0.1
    net = NeuralNet(eta)
    net.train(sdr)
    # result
    print("w=%f,b=%f" %(net.w, net.b))
    # 繪圖部分
    trainX,trainY = sdr.GetWholeTrainSamples()
    fig = plt.figure()
    ax = fig.add_subplot(111)
    # 繪制散點圖
    ax.scatter(trainX,trainY)
    # 繪制線性回歸
    x = np.arange(0, 1, 0.01)
    f = np.vectorize(net.inference, excluded=['x'])
    plt.plot(x,f(x),color='red')
    # 顯示圖表
    plt.show()

TensorFlow實現(xiàn)簡單的線性回歸

線性回歸原理       

根據(jù)數(shù)據(jù)建立回歸模型,w1x1+w2x2+…..+b = y,通過真實值與預(yù)測值之間建立誤差,使用梯度下降優(yōu)化得到損失最小對應(yīng)的權(quán)重和偏置。最終確定模型的權(quán)重和偏置參數(shù)。最后可以用這些參數(shù)進(jìn)行預(yù)測。

案例:實現(xiàn)線性回歸的訓(xùn)練

1 .案例確定

  • 假設(shè)隨機(jī)指定100個點,只有一個特征
  • 數(shù)據(jù)本身的分布為 y = 0.7 * x + 0.8
  • 這里將數(shù)據(jù)分布的規(guī)律確定,是為了使我們訓(xùn)練出的參數(shù)跟真實的參數(shù)(即0.7和0.8)比較是否訓(xùn)練準(zhǔn)確

2.API

運算

  • 矩陣運算
tf.matmul(x, w)
  • 平方
tf.square(error)
  • 均值
tf.reduce_mean(error)
  • 梯度下降優(yōu)化
tf.train.GradientDescentOptimizer(learning_rate)

梯度下降優(yōu)化

  • learning_rate:學(xué)習(xí)率,一般為0~1之間比較小的值
  • method:
  • minimize(loss)
  • return:梯度下降op

3.步驟分析

1 準(zhǔn)備好數(shù)據(jù)集:y = 0.8x + 0.7 100個樣本

2 建立線性模型

  • 隨機(jī)初始化W1和b1
  • y = W·X + b,目標(biāo):求出權(quán)重W和偏置b

3 確定損失函數(shù)(預(yù)測值與真實值之間的誤差)-均方誤差

4 梯度下降優(yōu)化損失:需要指定學(xué)習(xí)率(超參數(shù))

4.實現(xiàn)完整功能

import tensorflow as tf
import os
def linear_regression():
? ? """
? ? 自實現(xiàn)線性回歸
? ? :return: None
? ? """
? ? # 1)準(zhǔn)備好數(shù)據(jù)集:y = 0.8x + 0.7 100個樣本
? ? # 特征值X, 目標(biāo)值y_true
? ? X = tf.random_normal(shape=(100, 1), mean=2, stddev=2)
? ? # y_true [100, 1]
? ? # 矩陣運算 X(100, 1)* (1, 1)= y_true(100, 1)
? ? y_true = tf.matmul(X, [[0.8]]) + 0.7
? ? # 2)建立線性模型:
? ? # y = W·X + b,目標(biāo):求出權(quán)重W和偏置b
? ? # 3)隨機(jī)初始化W1和b1
? ? weights = tf.Variable(initial_value=tf.random_normal(shape=(1, 1)))
? ? bias = tf.Variable(initial_value=tf.random_normal(shape=(1, 1)))
? ? y_predict = tf.matmul(X, weights) + bias
? ? # 4)確定損失函數(shù)(預(yù)測值與真實值之間的誤差)-均方誤差
? ? error = tf.reduce_mean(tf.square(y_predict - y_true))
? ? # 5)梯度下降優(yōu)化損失:需要指定學(xué)習(xí)率(超參數(shù))
? ? # W2 = W1 - 學(xué)習(xí)率*(方向)
? ? # b2 = b1 - 學(xué)習(xí)率*(方向)
? ? optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
? ? # 初始化變量
? ? init = tf.global_variables_initializer()
? ? # 開啟會話進(jìn)行訓(xùn)練
? ? with tf.Session() as sess:
? ? ? ? # 運行初始化變量Op
? ? ? ? sess.run(init)
? ? ? ? print("隨機(jī)初始化的權(quán)重為%f, 偏置為%f" % (weights.eval(), bias.eval()))
? ? ? ? # 訓(xùn)練模型
? ? ? ? for i in range(100):
? ? ? ? ? ? sess.run(optimizer)
? ? ? ? ? ? print("第%d步的誤差為%f,權(quán)重為%f, 偏置為%f" % (i, error.eval(), weights.eval(), bias.eval()))
? ? return None

5.學(xué)習(xí)率的設(shè)置、步數(shù)的設(shè)置與梯度爆炸

學(xué)習(xí)率越大,訓(xùn)練到較好結(jié)果的步數(shù)越??;學(xué)習(xí)率越小,訓(xùn)練到較好結(jié)果的步數(shù)越大。

但是學(xué)習(xí)過大會出現(xiàn)梯度爆炸現(xiàn)象。關(guān)于梯度爆炸/梯度消失 ?

在極端情況下,權(quán)重的值變得非常大,以至于溢出,導(dǎo)致 NaN 值
如何解決梯度爆炸問題(深度神經(jīng)網(wǎng)絡(luò)當(dāng)中更容易出現(xiàn))
1、重新設(shè)計網(wǎng)絡(luò)
2、調(diào)整學(xué)習(xí)率
3、使用梯度截斷(在訓(xùn)練過程中檢查和限制梯度的大?。?br />4、使用激活函數(shù)

6.變量的trainable設(shè)置觀察

trainable的參數(shù)作用,指定是否訓(xùn)練

weight = tf.Variable(tf.random_normal([1, 1], mean=0.0, stddev=1.0), name="weights", trainable=False)

增加其他功能

  • 增加命名空間
  • 變量Tensorboard顯示
  • 模型保存與加載
  • 命令行參數(shù)設(shè)置

1.增加命名空間

是代碼結(jié)構(gòu)更加清晰,Tensorboard圖結(jié)構(gòu)清楚

with tf.variable_scope("lr_model"):

2.增加變量顯示

目的:在TensorBoard當(dāng)中觀察模型的參數(shù)、損失值等變量值的變化

1.收集變量

  • tf.summary.scalar(name=’’,tensor) 收集對于損失函數(shù)和準(zhǔn)確率等單值變量,name為變量的名字,tensor為值
  • tf.summary.histogram(name=‘’,tensor) 收集高維度的變量參數(shù)
  • tf.summary.image(name=‘’,tensor) 收集輸入的圖片張量能顯示圖片

2.合并變量寫入事件文件

  • merged = tf.summary.merge_all()
  • 運行合并:summary = sess.run(merged),每次迭代都需運行
  • 添加:FileWriter.add_summary(summary,i),i表示第幾次的值
def linear_regression():
    # 1)準(zhǔn)備好數(shù)據(jù)集:y = 0.8x + 0.7 100個樣本
    # 特征值X, 目標(biāo)值y_true
    with tf.variable_scope("original_data"):
        X = tf.random_normal(shape=(100, 1), mean=2, stddev=2, name="original_data_x")
        # y_true [100, 1]
        # 矩陣運算 X(100, 1)* (1, 1)= y_true(100, 1)
        y_true = tf.matmul(X, [[0.8]], name="original_matmul") + 0.7
    # 2)建立線性模型:
    # y = W·X + b,目標(biāo):求出權(quán)重W和偏置b
    # 3)隨機(jī)初始化W1和b1
    with tf.variable_scope("linear_model"):
        weights = tf.Variable(initial_value=tf.random_normal(shape=(1, 1)), name="weights")
        bias = tf.Variable(initial_value=tf.random_normal(shape=(1, 1)), name="bias")
        y_predict = tf.matmul(X, weights, name="model_matmul") + bias
    # 4)確定損失函數(shù)(預(yù)測值與真實值之間的誤差)-均方誤差
    with tf.variable_scope("loss"):
        error = tf.reduce_mean(tf.square(y_predict - y_true), name="error_op")
    # 5)梯度下降優(yōu)化損失:需要指定學(xué)習(xí)率(超參數(shù))
    # W2 = W1 - 學(xué)習(xí)率*(方向)
    # b2 = b1 - 學(xué)習(xí)率*(方向)
    with tf.variable_scope("gd_optimizer"):
        optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01, name="optimizer").minimize(error)
    # 2)收集變量
    tf.summary.scalar("error", error)
    tf.summary.histogram("weights", weights)
    tf.summary.histogram("bias", bias)
    # 3)合并變量
    merge = tf.summary.merge_all()
    # 初始化變量
    init = tf.global_variables_initializer()
    # 開啟會話進(jìn)行訓(xùn)練
    with tf.Session() as sess:
        # 運行初始化變量Op
        sess.run(init)
        print("隨機(jī)初始化的權(quán)重為%f, 偏置為%f" % (weights.eval(), bias.eval()))
        # 1)創(chuàng)建事件文件
        file_writer = tf.summary.FileWriter(logdir="./summary", graph=sess.graph)
        # 訓(xùn)練模型
        for i in range(100):
            sess.run(optimizer)
            print("第%d步的誤差為%f,權(quán)重為%f, 偏置為%f" % (i, error.eval(), weights.eval(), bias.eval()))
            # 4)運行合并變量op
            summary = sess.run(merge)
            file_writer.add_summary(summary, i)
    return None

3.模型的保存與加載

tf.train.Saver(var_list=None,max_to_keep=5)
  • 保存和加載模型(保存文件格式:checkpoint文件)
  • var_list:指定將要保存和還原的變量。它可以作為一個dict或一個列表傳遞.
  • max_to_keep:指示要保留的最近檢查點文件的最大數(shù)量。創(chuàng)建新文件時,會刪除較舊的文件。如果無或0,則保留所有檢查點文件。默認(rèn)為5(即保留最新的5個檢查點文件。)

使用

例如:

指定目錄+模型名字

saver.save(sess, '/tmp/ckpt/test/myregression.ckpt')
saver.restore(sess, '/tmp/ckpt/test/myregression.ckpt')

如要判斷模型是否存在,直接指定目錄

checkpoint = tf.train.latest_checkpoint("./tmp/model/")
saver.restore(sess, checkpoint)

4.命令行參數(shù)使用

tf.app.flags.,在flags有一個FLAGS標(biāo)志,它在程序中可以調(diào)用到我們

前面具體定義的flag_name

通過tf.app.run()啟動main(argv)函數(shù)

# 定義一些常用的命令行參數(shù)
# 訓(xùn)練步數(shù)
tf.app.flags.DEFINE_integer("max_step", 0, "訓(xùn)練模型的步數(shù)")
# 定義模型的路徑
tf.app.flags.DEFINE_string("model_dir", " ", "模型保存的路徑+模型名字")
# 定義獲取命令行參數(shù)
FLAGS = tf.app.flags.FLAGS
# 開啟訓(xùn)練
# 訓(xùn)練的步數(shù)(依據(jù)模型大小而定)
for i in range(FLAGS.max_step):
     sess.run(train_op)

完整代碼

import tensorflow as tf
import os
tf.app.flags.DEFINE_string("model_path", "./linear_regression/", "模型保存的路徑和文件名")
FLAGS = tf.app.flags.FLAGS
def linear_regression():
? ? # 1)準(zhǔn)備好數(shù)據(jù)集:y = 0.8x + 0.7 100個樣本
? ? # 特征值X, 目標(biāo)值y_true
? ? with tf.variable_scope("original_data"):
? ? ? ? X = tf.random_normal(shape=(100, 1), mean=2, stddev=2, name="original_data_x")
? ? ? ? # y_true [100, 1]
? ? ? ? # 矩陣運算 X(100, 1)* (1, 1)= y_true(100, 1)
? ? ? ? y_true = tf.matmul(X, [[0.8]], name="original_matmul") + 0.7
? ? # 2)建立線性模型:
? ? # y = W·X + b,目標(biāo):求出權(quán)重W和偏置b
? ? # 3)隨機(jī)初始化W1和b1
? ? with tf.variable_scope("linear_model"):
? ? ? ? weights = tf.Variable(initial_value=tf.random_normal(shape=(1, 1)), name="weights")
? ? ? ? bias = tf.Variable(initial_value=tf.random_normal(shape=(1, 1)), name="bias")
? ? ? ? y_predict = tf.matmul(X, weights, name="model_matmul") + bias
? ? # 4)確定損失函數(shù)(預(yù)測值與真實值之間的誤差)-均方誤差
? ? with tf.variable_scope("loss"):
? ? ? ? error = tf.reduce_mean(tf.square(y_predict - y_true), name="error_op")
? ? # 5)梯度下降優(yōu)化損失:需要指定學(xué)習(xí)率(超參數(shù))
? ? # W2 = W1 - 學(xué)習(xí)率*(方向)
? ? # b2 = b1 - 學(xué)習(xí)率*(方向)
? ? with tf.variable_scope("gd_optimizer"):
? ? ? ? optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01, name="optimizer").minimize(error)
? ? # 2)收集變量
? ? tf.summary.scalar("error", error)
? ? tf.summary.histogram("weights", weights)
? ? tf.summary.histogram("bias", bias)
? ? # 3)合并變量
? ? merge = tf.summary.merge_all()
? ? # 初始化變量
? ? init = tf.global_variables_initializer()
? ? # 創(chuàng)建saver對象
? ? saver = tf.train.Saver()
? ? # 開啟會話進(jìn)行訓(xùn)練
? ? with tf.Session() as sess:
? ? ? ? # 運行初始化變量Op
? ? ? ? sess.run(init)
? ? ? ? # 未經(jīng)訓(xùn)練的權(quán)重和偏置
? ? ? ? print("隨機(jī)初始化的權(quán)重為%f, 偏置為%f" % (weights.eval(), bias.eval()))
? ? ? ? # 當(dāng)存在checkpoint文件,就加載模型
? ? ? ? if os.path.exists("./linear_regression/checkpoint"):
? ? ? ? ? ? saver.restore(sess, FLAGS.model_path)
? ? ? ? # 1)創(chuàng)建事件文件
? ? ? ? file_writer = tf.summary.FileWriter(logdir="./summary", graph=sess.graph)
? ? ? ? # 訓(xùn)練模型
? ? ? ? for i in range(100):
? ? ? ? ? ? sess.run(optimizer)
? ? ? ? ? ? print("第%d步的誤差為%f,權(quán)重為%f, 偏置為%f" % (i, error.eval(), weights.eval(), bias.eval()))
? ? ? ? ? ? # 4)運行合并變量op
? ? ? ? ? ? summary = sess.run(merge)
? ? ? ? ? ? file_writer.add_summary(summary, i)
? ? ? ? ? ? if i % 10 == 0:
? ? ? ? ? ? ? ? saver.save(sess, FLAGS.model_path)
? ? return None
def main(argv):
? ? print("這是main函數(shù)")
? ? print(argv)
? ? print(FLAGS.model_path)
? ? linear_regression()
if __name__ == "__main__":
? ? tf.app.run()

作業(yè):將面向過程改為面向?qū)ο?/h4>

參考代碼

# 用tensorflow自實現(xiàn)一個線性回歸案例
# 定義一些常用的命令行參數(shù)
# 訓(xùn)練步數(shù)
tf.app.flags.DEFINE_integer("max_step", 0, "訓(xùn)練模型的步數(shù)")
# 定義模型的路徑
tf.app.flags.DEFINE_string("model_dir", " ", "模型保存的路徑+模型名字")
FLAGS = tf.app.flags.FLAGS
class MyLinearRegression(object):
? ? """
? ? 自實現(xiàn)線性回歸
? ? """
? ? def __init__(self):
? ? ? ? pass
? ? def inputs(self):
? ? ? ? """
? ? ? ? 獲取特征值目標(biāo)值數(shù)據(jù)數(shù)據(jù)
? ? ? ? :return:
? ? ? ? """
? ? ? ? x_data = tf.random_normal([100, 1], mean=1.0, stddev=1.0, name="x_data")
? ? ? ? y_true = tf.matmul(x_data, [[0.7]]) + 0.8
? ? ? ? return x_data, y_true
? ? def inference(self, feature):
? ? ? ? """
? ? ? ? 根據(jù)輸入數(shù)據(jù)建立模型
? ? ? ? :param feature:
? ? ? ? :param label:
? ? ? ? :return:
? ? ? ? """
? ? ? ? with tf.variable_scope("linea_model"):
? ? ? ? ? ? # 2、建立回歸模型,分析別人的數(shù)據(jù)的特征數(shù)量--->權(quán)重數(shù)量, 偏置b
? ? ? ? ? ? # 由于有梯度下降算法優(yōu)化,所以一開始給隨機(jī)的參數(shù),權(quán)重和偏置
? ? ? ? ? ? # 被優(yōu)化的參數(shù),必須得使用變量op去定義
? ? ? ? ? ? # 變量初始化權(quán)重和偏置
? ? ? ? ? ? # weight 2維[1, 1] ? ?bias [1]
? ? ? ? ? ? # 變量op當(dāng)中會有trainable參數(shù)決定是否訓(xùn)練
? ? ? ? ? ? self.weight = tf.Variable(tf.random_normal([1, 1], mean=0.0, stddev=1.0),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?name="weights")
? ? ? ? ? ? self.bias = tf.Variable(0.0, name='biases')
? ? ? ? ? ? # 建立回歸公式去得出預(yù)測結(jié)果
? ? ? ? ? ? y_predict = tf.matmul(feature, self.weight) + self.bias
? ? ? ? return y_predict
? ? def loss(self, y_true, y_predict):
? ? ? ? """
? ? ? ? 目標(biāo)值和真實值計算損失
? ? ? ? :return: loss
? ? ? ? """
? ? ? ? # 3、求出我們模型跟真實數(shù)據(jù)之間的損失
? ? ? ? # 均方誤差公式
? ? ? ? loss = tf.reduce_mean(tf.square(y_true - y_predict))
? ? ? ? return loss
? ? def merge_summary(self, loss):
? ? ? ? # 1、收集張量的值
? ? ? ? tf.summary.scalar("losses", loss)
? ? ? ? tf.summary.histogram("w", self.weight)
? ? ? ? tf.summary.histogram('b', self.bias)
? ? ? ? # 2、合并變量
? ? ? ? merged = tf.summary.merge_all()
? ? ? ? return merged
? ? def sgd_op(self, loss):
? ? ? ? """
? ? ? ? 獲取訓(xùn)練OP
? ? ? ? :return:
? ? ? ? """
? ? ? ? # 4、使用梯度下降優(yōu)化器優(yōu)化
? ? ? ? # 填充學(xué)習(xí)率:0 ~ 1 ? ?學(xué)習(xí)率是非常小,
? ? ? ? # 學(xué)習(xí)率大小決定你到達(dá)損失一個步數(shù)多少
? ? ? ? # 最小化損失
? ? ? ? train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
? ? ? ? return train_op
? ? def train(self):
? ? ? ? """
? ? ? ? 訓(xùn)練模型
? ? ? ? :param loss:
? ? ? ? :return:
? ? ? ? """
? ? ? ? g = tf.get_default_graph()
? ? ? ? with g.as_default():
? ? ? ? ? ? x_data, y_true = self.inputs()
? ? ? ? ? ? y_predict = self.inference(x_data)
? ? ? ? ? ? loss = self.loss(y_true, y_predict)
? ? ? ? ? ? train_op = self.sgd_op(loss)
? ? ? ? ? ? # 收集觀察的結(jié)果值
? ? ? ? ? ? merged = self.merge_summary(loss)
? ? ? ? ? ? saver = tf.train.Saver()
? ? ? ? ? ? with tf.Session() as sess:
? ? ? ? ? ? ? ? sess.run(tf.global_variables_initializer())
? ? ? ? ? ? ? ? # 在沒訓(xùn)練,模型的參數(shù)值
? ? ? ? ? ? ? ? print("初始化的權(quán)重:%f, 偏置:%f" % (self.weight.eval(), self.bias.eval()))
? ? ? ? ? ? ? ? # 加載模型
? ? ? ? ? ? ? ? checkpoint = tf.train.latest_checkpoint("./tmp/model/")
? ? ? ? ? ? ? ? # print(checkpoint)
? ? ? ? ? ? ? ? if checkpoint:
? ? ? ? ? ? ? ? ? ? print('Restoring', checkpoint)
? ? ? ? ? ? ? ? ? ? saver.restore(sess, checkpoint)
? ? ? ? ? ? ? ? # 開啟訓(xùn)練
? ? ? ? ? ? ? ? # 訓(xùn)練的步數(shù)(依據(jù)模型大小而定)
? ? ? ? ? ? ? ? for i in range(FLAGS.max_step):
? ? ? ? ? ? ? ? ? ? sess.run(train_op)
? ? ? ? ? ? ? ? ? ? # 生成事件文件,觀察圖結(jié)構(gòu)
? ? ? ? ? ? ? ? ? ? file_writer = tf.summary.FileWriter("./tmp/summary/", graph=sess.graph)
? ? ? ? ? ? ? ? ? ? print("訓(xùn)練第%d步之后的損失:%f, 權(quán)重:%f, 偏置:%f" % (
? ? ? ? ? ? ? ? ? ? ? ? i,
? ? ? ? ? ? ? ? ? ? ? ? loss.eval(),
? ? ? ? ? ? ? ? ? ? ? ? self.weight.eval(),
? ? ? ? ? ? ? ? ? ? ? ? self.bias.eval()))
? ? ? ? ? ? ? ? ? ? # 運行收集變量的結(jié)果
? ? ? ? ? ? ? ? ? ? summary = sess.run(merged)
? ? ? ? ? ? ? ? ? ? # 添加到文件
? ? ? ? ? ? ? ? ? ? file_writer.add_summary(summary, i)
? ? ? ? ? ? ? ? ? ? if i % 100 == 0:
? ? ? ? ? ? ? ? ? ? ? ? # 保存的是會話當(dāng)中的變量op值,其他op定義的值不保存
? ? ? ? ? ? ? ? ? ? ? ? saver.save(sess, FLAGS.model_dir)
if __name__ == '__main__':
? ? lr = MyLinearRegression()
? ? lr.train()

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python request中文亂碼問題解決方案

    Python request中文亂碼問題解決方案

    這篇文章主要介紹了Python request中文亂碼問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 舉例詳解Python中threading模塊的幾個常用方法

    舉例詳解Python中threading模塊的幾個常用方法

    這篇文章主要介紹了舉例詳解Python中threading模塊的幾個常用方法,threading模塊用來創(chuàng)建和操作線程,是Python學(xué)習(xí)當(dāng)中的重要知識,需要的朋友可以參考下
    2015-06-06
  • 一行代碼生成Tableau可視化圖表的方法

    一行代碼生成Tableau可視化圖表的方法

    本文主要介紹了一行代碼生成Tableau可視化圖表的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • python計算列表元素與乘積詳情

    python計算列表元素與乘積詳情

    這篇文章主要介紹了python計算列表元素與乘積,文章圍繞主題展開詳細(xì)內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 聊聊python中的異常嵌套

    聊聊python中的異常嵌套

    這篇文章主要介紹了python中的異常嵌套的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python 異常的相關(guān)知識,感興趣的朋友可以了解下
    2020-09-09
  • python 點云地面點濾波-progressive TIN densification(PTD)算法介紹

    python 點云地面點濾波-progressive TIN densification(PTD)算法介紹

    關(guān)于地面點濾波的概念我們要與孤立點(outlier)濾波區(qū)分開,孤立點濾波可以理解為圖像中的去噪,去除數(shù)據(jù)測量過程中受到飛鳥、多路徑效應(yīng)所產(chǎn)生的遠(yuǎn)低于/高于其他數(shù)據(jù)的點。今天通過本文給大家分享python PTD點云地面點濾波的相關(guān)知識,一起看看吧
    2021-08-08
  • 如何更改 pandas dataframe 中兩列的位置

    如何更改 pandas dataframe 中兩列的位置

    如何更改 pandas dataframe 中兩列的位置?今天小編就為大家介紹兩種操作方法,希望對大家有所幫助,還等什么?一起跟隨小編過來看看吧
    2019-12-12
  • python實現(xiàn)回旋矩陣方式(旋轉(zhuǎn)矩陣)

    python實現(xiàn)回旋矩陣方式(旋轉(zhuǎn)矩陣)

    今天小編就為大家分享一篇python實現(xiàn)回旋矩陣方式(旋轉(zhuǎn)矩陣),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • pytorch制作自己的LMDB數(shù)據(jù)操作示例

    pytorch制作自己的LMDB數(shù)據(jù)操作示例

    這篇文章主要介紹了pytorch制作自己的LMDB數(shù)據(jù)操作,結(jié)合實例形式分析了pytorch使用lmdb的相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2019-12-12
  • python使用struct模塊實現(xiàn)打包/解包二進(jìn)制數(shù)據(jù)

    python使用struct模塊實現(xiàn)打包/解包二進(jìn)制數(shù)據(jù)

    因為網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)都是二進(jìn)制字節(jié)流,而?Python?只有字符串可以直接轉(zhuǎn)成字節(jié)流,對于整數(shù)、浮點數(shù)則無能為力了,所以?Python?提供了?struct?模塊來幫我們解決這一點,下面我們就來看看它的用法吧
    2023-09-09

最新評論