这篇文章小编给大家分享一个如何导出python中的模型参数的方法,小编讲解的非常详细,如果感兴趣的小伙伴可以耐心阅读完这篇文章,相信一定能够从中获取不少的知识 。
文章插图
模型的保存和读取的方法如下
(一)通过tensorflow保存和读取模型:tf.train.Saver() .save()
#保存模型需要用到save函数
save( sess, save_path, global_step=None, latest_filename=None, meta_graph_suffix='meta', write_meta_graph=True, write_state=True)'''sess: 保存模型要求必须有一个加载了计算图的会话,而且所有变量必须已被初始化 。
save_path: 模型保存路径及保存名称
global_step: 如果提供的话,这个数字会添加到save_path后面,用于区分不同训练阶段的结果
'''
示例:
#例子import tensorflow as tf import numpy as np import os #用numpy产生数据 x_data = np.linspace(-1,1,300)[:, np.newaxis] #转置 noise = np.random.normal(0,0.05, x_data.shape) y_data = np.square(x_data)-0.5+noise #输入层 x_ph = tf.placeholder(tf.float32, [None, 1]) y_ph = tf.placeholder(tf.float32, [None, 1]) #隐藏层 w1 = tf.Variable(tf.random_normal([1,10])) b1 = tf.Variable(tf.zeros([1,10])+0.1) wx_plus_b1 = tf.matmul(x_ph, w1) + b1 hidden = tf.nn.relu(wx_plus_b1) #输出层 w2 = tf.Variable(tf.random_normal([10,1])) b2 = tf.Variable(tf.zeros([1,1])+0.1) wx_plus_b2 = tf.matmul(hidden, w2) + b2 y = wx_plus_b2 #损失 loss = tf.reduce_mean(tf.reduce_sum(tf.square(y_ph-y),reduction_indices=[1])) train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss) #保存模型对象saver saver = tf.train.Saver() #判断模型保存路径是否存在,不存在就创建 if not os.path.exists('tmp/'): os.mkdir('tmp/') #初始化 with tf.Session() as sess: if os.path.exists('tmp/checkpoint'): #判断模型是否存在 saver.restore(sess, 'tmp/model.ckpt') #存在就从模型中恢复变量 else: init = tf.global_variables_initializer() #不存在就初始化变量 sess.run(init) for i in range(1000): _,loss_value = sess.run([train_op,loss], feed_dict={x_ph:x_data, y_ph:y_data}) if(i%50==0): save_path = saver.save(sess, 'tmp/model.ckpt') print("迭代次数:%d , 训练损失:%s"%(i, loss_value))
推荐阅读
- Python程序导入caffe失败怎么办?caffe怎么正常使用
- python可以开发微信么?这篇文章告诉你答案
- mongodb如何做主从?这篇文章通过实测的方法告诉你
- Python怎么连接到mysql数据库?连接代码怎么写
- Python爬虫抓取内容输出中文乱码怎么办?三行代码解决
- 京东采购账号如何注册?用户需要哪些条件?
- 京东如何开通运费险?理赔有哪些?
- 京东新店会被抽检吗?如何申请复检?
- 天猫超市如何补单?技巧有哪些?
- 淘宝刷到单退款如何处理?如何避免?