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

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. 初入pygame——贪吃蛇

    一.问题利用pygame进行游戏的编写,做一些简单的游戏比如贪吃蛇,连连看等,后期做完会把代码托管. 二.解决 1.环境配置 python提供一个pygame的库来进行游戏的编写.首先是安装pygam ...

  2. 每日一练ACM 2019.04.13

    2019.04.13 第1002题:A+B Proble Ⅱ Problem DescriptionI have a very simple problem for you. Given two in ...

  3. Unity3D编辑器扩展(六)——模态窗口

    前面我们已经写了5篇关于编辑器的,这是第六篇,也是最后一篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)—— ...

  4. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...

  5. Linux 使用记1 fastx toolkit安装问题

    1 安装fastx toolkit的时候,步骤按https://blog.csdn.net/LotusWang0723/article/details/78723409 其中可能会出现如下报错 tex ...

  6. can't open the mysql.plugin table. please run mysql_upgrade to create it.

    To initialize a fresh data directory, you basically (after setting your config file) just have to ru ...

  7. jwt vs session 以rails 为例 (翻译部分)

    原文地址:https://pragmaticstudio.com/tutorials/rails-session-cookies-for-api-authentication 普通方式: 令牌为基础的 ...

  8. 记录一次Service被注入mapper实例的错误

    在一个搭建框架为SSM的项目中,有一个需求是数据库更新同步Solr索引库的数据. 在使用ActiveMQ作为中间件,实现这个需求时却发生了一个错误. 在Listener实现类里我想注入一个Servic ...

  9. GC算法基础

    寻找垃圾对象的算法:1. 引用计数(无法处理循环引用) 2. 根寻法(被广泛引用在gc算法中) 清理垃圾的算法: 1. 标记复制  2. 标记清理  3. 标记整理 分代算法的好处: 1. 分代处理, ...

  10. Smokeping安装部署

    稳定性检测工具smokeping安装配置和使用方法 Smokeping介绍 是对IDC网络质量,稳定性等最好的检测工具,包括常规的 ping,dig,echoping,curl等,可以监视www服务器 ...