日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习-线性回归基础-02

發(fā)布時(shí)間:2024/9/15 pytorch 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习-线性回归基础-02 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線性回歸:


線性方程 y=kx+b



w12+w22+w33+w44+…w“n”*n
算法:線性回歸
策略:均方誤差
優(yōu)化:梯度下降api(學(xué)習(xí)率)


import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級別,不顯示警告 import tensorflow as tfdef myregression():"""自實(shí)現(xiàn)一個(gè)線性回歸預(yù)測:return: """# 1,準(zhǔn)備數(shù)據(jù),x特征值[100,1] y目標(biāo)值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 隨機(jī)創(chuàng)建一個(gè)值 100行1列 平均值1.75 方差0.5 name是x_data# 矩陣相乘必須是二維的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假設(shè)偏置是0.8# 2,建立線性回歸模型1個(gè)特征,1個(gè)權(quán)重,一個(gè)偏置 y = x*w + b# 隨機(jī)給一個(gè)權(quán)重和偏置的值,讓他去計(jì)算損失,然后在當(dāng)前狀態(tài)下進(jìn)行優(yōu)化# 用變量定義才能進(jìn)行優(yōu)化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w")bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+bias# 3,建立損失函數(shù),均方誤差loss = tf.reduce_mean(tf.square(y_true - y_predict))# 4,梯度下降優(yōu)化損失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 定義一個(gè)初始化變量opinit_op = tf.global_variables_initializer()# 通過會話運(yùn)行程序with tf.Session() as sess: # 上下文管理器# 初始化變量sess.run(init_op)# 打印隨機(jī)最先初始化的權(quán)重和偏置print("隨機(jī)初始化的參數(shù)權(quán)重:%f,偏置為:%f"%(weight.eval(),bias.eval()))# 循環(huán)訓(xùn)練 運(yùn)行優(yōu)化for i in range(200):sess.run(train_op)print("第%d次優(yōu)化后的參數(shù)權(quán)重:%f,偏置為:%f" % (i,weight.eval(), bias.eval()))return Noneif __name__=="__main__":myregression()







tensorboard --logdir=“test” (test=你的路徑)

作用域

讓模型代碼更加清晰,作用分明

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級別,不顯示警告 import tensorflow as tfdef myregression():"""自實(shí)現(xiàn)一個(gè)線性回歸預(yù)測:return: """# 建立作用域with tf.variable_scope("data"):# 1,準(zhǔn)備數(shù)據(jù),x特征值[100,1] y目標(biāo)值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 隨機(jī)創(chuàng)建一個(gè)值 100行1列 平均值1.75 方差0.5 name是x_data# 矩陣相乘必須是二維的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假設(shè)偏置是0.8with tf.variable_scope("model"):# 2,建立線性回歸模型1個(gè)特征,1個(gè)權(quán)重,一個(gè)偏置 y = x*w + b# 隨機(jī)給一個(gè)權(quán)重和偏置的值,讓他去計(jì)算損失,然后在當(dāng)前狀態(tài)下進(jìn)行優(yōu)化# 用變量定義才能進(jìn)行優(yōu)化# trainable參數(shù):指定這個(gè)變量能否跟著梯度下降一起優(yōu)化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立損失函數(shù),均方誤差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降優(yōu)化損失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 定義一個(gè)初始化變量opinit_op = tf.global_variables_initializer()# 通過會話運(yùn)行程序with tf.Session() as sess: # 上下文管理器# 初始化變量sess.run(init_op)# 打印隨機(jī)最先初始化的權(quán)重和偏置print("隨機(jī)初始化的參數(shù)權(quán)重:%f,偏置為:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 循環(huán)訓(xùn)練 運(yùn)行優(yōu)化for i in range(200):sess.run(train_op)print("第%d次優(yōu)化后的參數(shù)權(quán)重:%f,偏置為:%f" % (i,weight.eval(), bias.eval()))return Noneif __name__=="__main__":myregression()


增加變量顯示

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級別,不顯示警告 import tensorflow as tf# 1,訓(xùn)練參數(shù)問題:trainable# 學(xué)習(xí)率和步數(shù)的設(shè)置 # 2,添加權(quán)重值,損失值等在tensorboard觀察情況# 1,收集變量 2,合并變量寫入事件文件中 def myregression():"""自實(shí)現(xiàn)一個(gè)線性回歸預(yù)測:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,準(zhǔn)備數(shù)據(jù),x特征值[100,1] y目標(biāo)值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 隨機(jī)創(chuàng)建一個(gè)值 100行1列 平均值1.75 方差0.5 name是x_data# 矩陣相乘必須是二維的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假設(shè)偏置是0.8with tf.variable_scope("model"):# 2,建立線性回歸模型1個(gè)特征,1個(gè)權(quán)重,一個(gè)偏置 y = x*w + b# 隨機(jī)給一個(gè)權(quán)重和偏置的值,讓他去計(jì)算損失,然后在當(dāng)前狀態(tài)下進(jìn)行優(yōu)化# 用變量定義才能進(jìn)行優(yōu)化# trainable參數(shù):指定這個(gè)變量能否跟著梯度下降一起優(yōu)化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立損失函數(shù),均方誤差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降優(yōu)化損失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定義合并tensor的opmerged = tf.summary.merge_all()# 定義一個(gè)初始化變量opinit_op = tf.global_variables_initializer()# 通過會話運(yùn)行程序with tf.Session() as sess: # 上下文管理器# 初始化變量sess.run(init_op)# 打印隨機(jī)最先初始化的權(quán)重和偏置print("隨機(jī)初始化的參數(shù)權(quán)重:%f,偏置為:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 循環(huán)訓(xùn)練 運(yùn)行優(yōu)化for i in range(500):sess.run(train_op)# 運(yùn)行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次優(yōu)化后的參數(shù)權(quán)重:%f,偏置為:%f" % (i,weight.eval(), bias.eval()))return Noneif __name__=="__main__":myregression()



模型的保存和加載


保存

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級別,不顯示警告 import tensorflow as tf# 1,訓(xùn)練參數(shù)問題:trainable# 學(xué)習(xí)率和步數(shù)的設(shè)置 # 2,添加權(quán)重值,損失值等在tensorboard觀察情況# 1,收集變量 2,合并變量寫入事件文件中 def myregression():"""自實(shí)現(xiàn)一個(gè)線性回歸預(yù)測:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,準(zhǔn)備數(shù)據(jù),x特征值[100,1] y目標(biāo)值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 隨機(jī)創(chuàng)建一個(gè)值 100行1列 平均值1.75 方差0.5 name是x_data# 矩陣相乘必須是二維的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假設(shè)偏置是0.8with tf.variable_scope("model"):# 2,建立線性回歸模型1個(gè)特征,1個(gè)權(quán)重,一個(gè)偏置 y = x*w + b# 隨機(jī)給一個(gè)權(quán)重和偏置的值,讓他去計(jì)算損失,然后在當(dāng)前狀態(tài)下進(jìn)行優(yōu)化# 用變量定義才能進(jìn)行優(yōu)化# trainable參數(shù):指定這個(gè)變量能否跟著梯度下降一起優(yōu)化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立損失函數(shù),均方誤差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降優(yōu)化損失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定義合并tensor的opmerged = tf.summary.merge_all()# 定義一個(gè)初始化變量opinit_op = tf.global_variables_initializer()# 定義一個(gè)保存模型的實(shí)例saver = tf.train.Saver()# 通過會話運(yùn)行程序with tf.Session() as sess: # 上下文管理器# 初始化變量sess.run(init_op)# 打印隨機(jī)最先初始化的權(quán)重和偏置print("隨機(jī)初始化的參數(shù)權(quán)重:%f,偏置為:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 循環(huán)訓(xùn)練 運(yùn)行優(yōu)化for i in range(500):sess.run(train_op)# 運(yùn)行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次優(yōu)化后的參數(shù)權(quán)重:%f,偏置為:%f" % (i,weight.eval(), bias.eval()))saver.save(sess,"./ckpt/test_model") # 模型保存return Noneif __name__=="__main__":myregression()

加載模型從上次結(jié)果開始訓(xùn)練

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級別,不顯示警告 import tensorflow as tf# 1,訓(xùn)練參數(shù)問題:trainable# 學(xué)習(xí)率和步數(shù)的設(shè)置 # 2,添加權(quán)重值,損失值等在tensorboard觀察情況# 1,收集變量 2,合并變量寫入事件文件中 def myregression():"""自實(shí)現(xiàn)一個(gè)線性回歸預(yù)測:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,準(zhǔn)備數(shù)據(jù),x特征值[100,1] y目標(biāo)值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 隨機(jī)創(chuàng)建一個(gè)值 100行1列 平均值1.75 方差0.5 name是x_data# 矩陣相乘必須是二維的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假設(shè)偏置是0.8with tf.variable_scope("model"):# 2,建立線性回歸模型1個(gè)特征,1個(gè)權(quán)重,一個(gè)偏置 y = x*w + b# 隨機(jī)給一個(gè)權(quán)重和偏置的值,讓他去計(jì)算損失,然后在當(dāng)前狀態(tài)下進(jìn)行優(yōu)化# 用變量定義才能進(jìn)行優(yōu)化# trainable參數(shù):指定這個(gè)變量能否跟著梯度下降一起優(yōu)化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立損失函數(shù),均方誤差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降優(yōu)化損失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定義合并tensor的opmerged = tf.summary.merge_all()# 定義一個(gè)初始化變量opinit_op = tf.global_variables_initializer()# 定義一個(gè)保存模型的實(shí)例saver = tf.train.Saver()# 通過會話運(yùn)行程序with tf.Session() as sess: # 上下文管理器# 初始化變量sess.run(init_op)# 打印隨機(jī)最先初始化的權(quán)重和偏置print("隨機(jī)初始化的參數(shù)權(quán)重:%f,偏置為:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 加載模型,覆蓋模型當(dāng)中隨機(jī)定義的參數(shù),從上次訓(xùn)練的參數(shù)結(jié)果開始if os.path.exists("./ckpt/checkpoint"): # 判斷ckpt目錄下是否存在checkpointsaver.restore(sess,"./ckpt/test_model") # 存在就加載模型# 循環(huán)訓(xùn)練 運(yùn)行優(yōu)化for i in range(500):sess.run(train_op)# 運(yùn)行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次優(yōu)化后的參數(shù)權(quán)重:%f,偏置為:%f" % (i,weight.eval(), bias.eval()))saver.save(sess,"./ckpt/test_model") # 模型保存return Noneif __name__=="__main__":myregression()



import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級別,不顯示警告 import tensorflow as tf# 1,訓(xùn)練參數(shù)問題:trainable# 學(xué)習(xí)率和步數(shù)的設(shè)置 # 2,添加權(quán)重值,損失值等在tensorboard觀察情況# 1,收集變量 2,合并變量寫入事件文件中 # 3,定義命令行參數(shù)# 1,首先定義有哪些參數(shù)需要在運(yùn)行的時(shí)候指定# 2,程序當(dāng)中獲取定義命令行參數(shù) # 第一參數(shù):名字,默認(rèn)值,說明 tf.flags.DEFINE_integer("max_step",100,"模型訓(xùn)練的步數(shù)") tf.flags.DEFINE_string("model_dir"," ","模型的加載路徑") # 定義獲取命令行參數(shù)的名字 FLAGS = tf.flags.FLAGS def myregression():"""自實(shí)現(xiàn)一個(gè)線性回歸預(yù)測:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,準(zhǔn)備數(shù)據(jù),x特征值[100,1] y目標(biāo)值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 隨機(jī)創(chuàng)建一個(gè)值 100行1列 平均值1.75 方差0.5 name是x_data# 矩陣相乘必須是二維的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假設(shè)偏置是0.8with tf.variable_scope("model"):# 2,建立線性回歸模型1個(gè)特征,1個(gè)權(quán)重,一個(gè)偏置 y = x*w + b# 隨機(jī)給一個(gè)權(quán)重和偏置的值,讓他去計(jì)算損失,然后在當(dāng)前狀態(tài)下進(jìn)行優(yōu)化# 用變量定義才能進(jìn)行優(yōu)化# trainable參數(shù):指定這個(gè)變量能否跟著梯度下降一起優(yōu)化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立損失函數(shù),均方誤差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降優(yōu)化損失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定義合并tensor的opmerged = tf.summary.merge_all()# 定義一個(gè)初始化變量opinit_op = tf.global_variables_initializer()# 定義一個(gè)保存模型的實(shí)例saver = tf.train.Saver()# 通過會話運(yùn)行程序with tf.Session() as sess: # 上下文管理器# 初始化變量sess.run(init_op)# 打印隨機(jī)最先初始化的權(quán)重和偏置print("隨機(jī)初始化的參數(shù)權(quán)重:%f,偏置為:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 加載模型,覆蓋模型當(dāng)中隨機(jī)定義的參數(shù),從上次訓(xùn)練的參數(shù)結(jié)果開始if os.path.exists("./ckpt/checkpoint"): # 判斷ckpt目錄下是否存在checkpointsaver.restore(sess,FLAGS.model_dir) # 存在就加載模型# 循環(huán)訓(xùn)練 運(yùn)行優(yōu)化 步數(shù)for i in range(FLAGS.max_step):sess.run(train_op)# 運(yùn)行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次優(yōu)化后的參數(shù)權(quán)重:%f,偏置為:%f" % (i,weight.eval(), bias.eval()))saver.save(sess,FLAGS.model_dir) # 模型保存return Noneif __name__=="__main__":myregression()

python 線性回歸.py --max_step=300 --model_dir="/ckpt/model"

總結(jié)

以上是生活随笔為你收集整理的深度学习-线性回归基础-02的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。