网站站长指南,icp网站备案系统,wordpress文章的表是什么,建站不备案和这篇文章对比https://blog.csdn.net/fanzonghao/article/details/81023730
不希望重复定义图上的运算#xff0c;也就是在模型恢复过程中#xff0c;不想sess.run(init)首先看路径 lineRegulation_model.py定义线性回归类#xff1a;
import tensorflow as tf
也就是在模型恢复过程中不想sess.run(init)首先看路径 lineRegulation_model.py定义线性回归类
import tensorflow as tf类定义一些公共量方便模型载入用class LineRegModel:def __init__(self):with tf.variable_scope(var):self.a_valtf.Variable(tf.random_normal(shape[1]),namea_val)self.b_val tf.Variable(tf.random_normal(shape[1]),nameb_val)self.x_inputtf.placeholder(dtypetf.float32,nameinput_placeholder)self.y_label tf.placeholder(dtypetf.float32,nameresult_placeholder)self.y_output tf.add(tf.multiply(self.x_input,self.a_val),self.b_val,nameoutput)self.losstf.reduce_mean(tf.pow(self.y_output-self.y_label,2))def get_saver(self):return tf.train.Saver()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_restore2 import global_variable
from save_and_restore2 import lineRegulation_model as model
import os
if not os.path.exists(./model):os.makedirs(./model)训练模型train_xnp.random.rand(5)
train_ytrain_x*53
modelmodel.LineRegModel()#类要加括号
a_valmodel.a_val
b_valmodel.b_val
x_inputmodel.x_input
y_labelmodel.y_label
y_outputmodel.y_output
lossmodel.loss
optimizermodel.get_op()
savermodel.get_saver()
if __name__ __main__:inittf.global_variables_initializer()with tf.Session() as sess:sess.run(init)flagTrueepoch0while flag:epoch1cost,_sess.run([loss,optimizer],feed_dict{x_input:train_x,y_label:train_y})if cost1e-6:flagFalseprint(a{},b{}.format(a_val.eval(sess),b_val.eval(sess)))print(epoch{}.format(epoch))print(a_val)# print(a_val.op)saver.save(sess,global_variable.save_path)print(model save finish)print(a_val)的形式 print(a_val.op)的形式 model_restore.py恢复模型 利用恢复图在恢复权重的方式可实现更细节的模型恢复
import tensorflow as tf
from save_and_restore import global_variable,lineRegulation_model as model恢复模型图文件savertf.train.import_meta_graph(./model/weight.meta)
#读取placeholder和最终的输出结果
graphtf.get_default_graph()
a_valgraph.get_tensor_by_name(var/a_val:0)
b_valgraph.get_tensor_by_name(var/b_val:0)input_placeholdergraph.get_tensor_by_name(input_placeholder:0)
labels_placeholdergraph.get_tensor_by_name(result_placeholder:0)
y_outputgraph.get_tensor_by_name(output:0)with tf.Session() as sess:#具体权重的恢复saver.restore(sess,./model/weight)resultsess.run(y_output,feed_dict{input_placeholder:[1]})print(result)print(sess.run(a_val))print(sess.run(b_val))