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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单的线性模型实现tensorflow权重的生成和调用,并且用类的方式实现参数共享

發布時間:2024/7/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单的线性模型实现tensorflow权重的生成和调用,并且用类的方式实现参数共享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先看文件路徑,line_regression是總文件夾,model文件夾存放權重文件,

global_variable.py寫了一句話.

?

save_path='./model/weight'

權重要存放的路徑,以weight命名.

lineRegulation_model.py代碼

?

import tensorflow as tf """ 類定義一些公共量,方便模型載入用 """ class LineRegModel:def __init__(self):self.a_val=tf.Variable(tf.random_normal(shape=[1]))self.b_val = tf.Variable(tf.random_normal(shape=[1]))self.x_input=tf.placeholder(dtype=tf.float32)self.y_label = tf.placeholder(dtype=tf.float32)self.y_output = tf.multiply(self.x_input,self.a_val)+self.b_valself.loss=tf.reduce_mean(tf.pow(self.y_output-self.y_label,2))def get_op(self):return tf.train.GradientDescentOptimizer(0.01).minimize(self.loss)

定義了一個類,方便后面共享權值恢復模型的調用

model_train.py代碼:

?

import tensorflow as tf import numpy as np from save_and_restore import global_variable from save_and_restore import lineRegulation_model as model """ 訓練模型 """ train_x=np.random.rand(5) train_y=train_x*5+3 model=model.LineRegModel()#類要加括號 a_val=model.a_val b_val=model.b_val x_input=model.x_input y_label=model.y_label y_output=model.y_output loss=model.loss optimizer=model.get_op() if __name__ == '__main__':saver = tf.train.Saver()init=tf.global_variables_initializer()with tf.Session() as sess:sess.run(init)flag=Trueepoch=0while flag:epoch+=1cost,_=sess.run([loss,optimizer],feed_dict={x_input:train_x,y_label:train_y})if cost<1e-6:flag=Falseprint('a={},b={}'.format(a_val.eval(sess),b_val.eval(sess)))print('epoch={}'.format(epoch))saver.save(sess,global_variable.save_path)print('model save finish')

訓練模型,并且存放模型的目的,這樣前面三段代碼就可以實現簡單的線性模型權重的生成和存放。

其中checkpoint指的是檢查點文件,記錄存儲文件名稱,weight.data_00000-of-00001權重存儲文件,weight.index存儲權重目錄

weight.meta模型的全部圖文件,所以weight.data_00000-of-00001和weight.meta是最大的。

model_restore.py代碼如下:

import tensorflow as tf from save_and_restore import global_variable,lineRegulation_model as model """ 加載模型 """ model=model.LineRegModel() x_input=model.x_input y_output=model.y_output init=tf.global_variables_initializer() saver=tf.train.Saver() with tf.Session() as sess:sess.run(init)saver.restore(sess,global_variable.save_path)result=sess.run(y_output,feed_dict={x_input:[1]})print(result)

調用生成的模型打印出預測結果:

結果和8差不多。

?

總結

以上是生活随笔為你收集整理的简单的线性模型实现tensorflow权重的生成和调用,并且用类的方式实现参数共享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。