我们的模型训练出来想给别人用,或者是我今天训练不完,明天想接着训练,怎么办?这就需要模型的保存与读取。看代码:

import tensorflow as tf
import numpy as np
import os #输入数据
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 #输入层
xs = tf.placeholder(tf.float32, [None, 1])
ys = 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(xs,W1) + b1
output1 = 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(output1,W2) + b2
output2 = Wx_plus_b2 #损失
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-output2),reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) #模型保存加载工具
saver = tf.train.Saver() #判断模型保存路径是否存在,不存在就创建
if not os.path.exists('tmp/'):
os.mkdir('tmp/') #初始化
sess = tf.Session()
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_step,loss], feed_dict={xs:x_data,ys:y_data})
if(i%50==0): #每50次保存一次模型
save_path = saver.save(sess, 'tmp/model.ckpt') #保存模型到tmp/model.ckpt,注意一定要有一层文件夹,否则保存不成功!!!
print("模型保存:%s 当前训练损失:%s"%(save_path, loss_value))

大家第一次训练得到:

模型保存:tmp/model.ckpt 当前训练损失:1.35421
模型保存:tmp/model.ckpt 当前训练损失:0.011808
模型保存:tmp/model.ckpt 当前训练损失:0.00916655
模型保存:tmp/model.ckpt 当前训练损失:0.00690887
模型保存:tmp/model.ckpt 当前训练损失:0.00575491
模型保存:tmp/model.ckpt 当前训练损失:0.00526401
模型保存:tmp/model.ckpt 当前训练损失:0.00498503
模型保存:tmp/model.ckpt 当前训练损失:0.00478226
模型保存:tmp/model.ckpt 当前训练损失:0.0046346
模型保存:tmp/model.ckpt 当前训练损失:0.00454276
模型保存:tmp/model.ckpt 当前训练损失:0.00446402
模型保存:tmp/model.ckpt 当前训练损失:0.00436883
模型保存:tmp/model.ckpt 当前训练损失:0.00427732
模型保存:tmp/model.ckpt 当前训练损失:0.00418589
模型保存:tmp/model.ckpt 当前训练损失:0.00409241
模型保存:tmp/model.ckpt 当前训练损失:0.00400956
模型保存:tmp/model.ckpt 当前训练损失:0.00392799
模型保存:tmp/model.ckpt 当前训练损失:0.00383506
模型保存:tmp/model.ckpt 当前训练损失:0.00373741
模型保存:tmp/model.ckpt 当前训练损失:0.00366922

第二次继续训练,得到:

模型保存:tmp/model.ckpt 当前训练损失:0.00412003
模型保存:tmp/model.ckpt 当前训练损失:0.00388735
模型保存:tmp/model.ckpt 当前训练损失:0.00382827
模型保存:tmp/model.ckpt 当前训练损失:0.00379988
模型保存:tmp/model.ckpt 当前训练损失:0.00378107
模型保存:tmp/model.ckpt 当前训练损失:0.003764
模型保存:tmp/model.ckpt 当前训练损失:0.00375149
模型保存:tmp/model.ckpt 当前训练损失:0.00374324
模型保存:tmp/model.ckpt 当前训练损失:0.00373386
模型保存:tmp/model.ckpt 当前训练损失:0.00372364
模型保存:tmp/model.ckpt 当前训练损失:0.00371543
模型保存:tmp/model.ckpt 当前训练损失:0.00370875
模型保存:tmp/model.ckpt 当前训练损失:0.00370262
模型保存:tmp/model.ckpt 当前训练损失:0.00369697
模型保存:tmp/model.ckpt 当前训练损失:0.00369161
模型保存:tmp/model.ckpt 当前训练损失:0.00368653
模型保存:tmp/model.ckpt 当前训练损失:0.00368169
模型保存:tmp/model.ckpt 当前训练损失:0.00367714
模型保存:tmp/model.ckpt 当前训练损失:0.00367274
模型保存:tmp/model.ckpt 当前训练损失:0.00366843

可以看到,第二次训练是在第一次训练的基础上继续训练的。于是,我们可以把我们想要的模型保存下来,慢慢训练。

参考文档:

1、《TensorFlow使用指南》:http://www.tensorfly.cn/tfdoc/tutorials/mnist_tf.html

10 Tensorflow模型保存与读取的更多相关文章

  1. Sklearn,TensorFlow,keras模型保存与读取

    一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...

  2. TensorFlow模型保存和加载方法

    TensorFlow模型保存和加载方法 模型保存 import tensorflow as tf w1 = tf.Variable(tf.constant(2.0, shape=[1]), name= ...

  3. TensorFlow模型保存和提取方法

    一.TensorFlow模型保存和提取方法 1. TensorFlow通过tf.train.Saver类实现神经网络模型的保存和提取.tf.train.Saver对象saver的save方法将Tens ...

  4. tensorflow 模型保存与加载 和TensorFlow serving + grpc + docker项目部署

    TensorFlow 模型保存与加载 TensorFlow中总共有两种保存和加载模型的方法.第一种是利用 tf.train.Saver() 来保存,第二种就是利用 SavedModel 来保存模型,接 ...

  5. TensorFlow 模型保存/载入

    我们在上线使用一个算法模型的时候,首先必须将已经训练好的模型保存下来.tensorflow保存模型的方式与sklearn不太一样,sklearn很直接,一个sklearn.externals.jobl ...

  6. [MISS静IOS开发原创文摘]-AppDelegate存储全局变量和 NSUserDefaults standardUserDefaults 通过模型保存和读取数据,存储自定义的对象

    由于app开发的需求,需要从api接口获得json格式数据并保存临时的 app的主题颜色 和 相关url 方案有很多种: 1, 通过AppDelegate保存为全局变量,再获取 2,使用NSUSerD ...

  7. Tensorflow模型保存与加载

    在使用Tensorflow时,我们经常要将以训练好的模型保存到本地或者使用别人已训练好的模型,因此,作此笔记记录下来. TensorFlow通过tf.train.Saver类实现神经网络模型的保存和提 ...

  8. 一份快速完整的Tensorflow模型保存和恢复教程(译)(转载)

    该文章转自https://blog.csdn.net/sinat_34474705/article/details/78995196 我在进行图像识别使用ckpt文件预测的时候,这个文章给我提供了极大 ...

  9. 转 tensorflow模型保存 与 加载

    使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...

随机推荐

  1. k8s的基本使用

    一.kubectl的命令参数 1)kubectl 能使用的命令.即查看帮助 [root@k8s6 ~]# kubectl kubectl controls the Kubernetes cluster ...

  2. (26)A delightful way to teach kids about computers

    https://www.ted.com/talks/linda_liukas_a_delightful_way_to_teach_kids_about_computers/transcript00:1 ...

  3. VS2015配置OpenCV,使用mfc摄像头程序测试

    转自:https://blog.csdn.net/Lee_Dk/article/details/80466523 这只是介绍了如何加入OpenCV,怎么查找OpenCV请看出处. 新建一个项目.找到属 ...

  4. Python中使用cx_Oracle调用Oracle存储过程

    import cx_Oracle as cx import datetime def execute_sql(): # 声明变量 date_time = datetime.datetime.now() ...

  5. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...

  6. Unicode vs. UTF-8 etc.

    目测是个老问题了.随便一搜,网上各种总结过.这里不辞啰嗦,尽量简洁的备忘一下. 几个链接,有道云笔记链接,都是知乎上几个问题的摘录:阮一峰的日志,1-5 还是值得参考,但是之后的部分则混淆了 Wind ...

  7. 《你不知道的JavaScript》三卷读后感

    本系列的作者是Kyle Simpson,上卷译者赵望野.梁杰,中卷译者单业,下卷译者单业.姜南. 我个人觉得第一卷是本系列最好的(必读),而第二卷虽然也讲解了很多知识点,但是对于异步和性能的那部分提及 ...

  8. 洛谷P1776--宝物筛选(单调队列+多重背包)

    https://www.luogu.org/problemnew/show/P1776 单调队列+多重背包的讲解https://www.cnblogs.com/JoeFan/p/4165956.htm ...

  9. python图形界面编程

    EasyGui(easygui-docs-0.96\tutorial\index.html) import easygui as g import sys while 1: g.msgbox('mes ...

  10. poj3660 cow contest

    这题主要是传递闭包 题意: n头牛,m次测试,假设a牛赢过b牛,那么说明a牛的能力比b牛强,问你根据输入的m次测试结果,最多能确定多少条牛的排名 大题的思路: 对于 k 牛,比他强的有x头牛,比他弱的 ...