【TensorFlow】TensorFlow基础 —— 模型的保存读取与可视化方法总结
TensorFlow提供了一个用于保存模型的工具以及一个可视化方案
这里使用的TensorFlow为1.3.0版本
一、保存模型数据
- 模型数据以文件的形式保存到本地;
- 使用神经网络模型进行大数据量和复杂模型训练时,训练时间可能会持续增加,此时为避免训练过程出现不可逆的影响,并验证训练效果,可以考虑分段进行,将训练数据模型保存,然后在继续训练时重新读取;
- 此外,模型训练完毕,获取一个性能良好的模型后,可以保存以备重复利用;
模型保存形式如下:
保存模型数据的基本方法:
save_dir = 'model/graph.ckpt'
saver = tf.train.Saver()
sess = tf.Session()
#保存模型
saver.save(sess, save_dir) #读取模型
saver.restore(sess, save_dir)
可以在训练进行之后保存模型saver.save(sess, save_dir) ,
已训练的模型可以在此次训练或预测前读取saver.restore(sess, save_dir),
二、训练过程可视化方法
TensorFlow提供了一个Tensorboard工具进行可视化,此工具可以将训练过程中输出的数据使用Web浏览器输出显示,该工具需要在控制台启动;
保存的数据文件如下:
保存训练数据的基本方法
TensorFlow可以保存与显示的数据形式:
- 标量Scalars
- 图片Images
- 音频Audio
- 计算图Graph
- 数据分布Distribution
- 直方图Histograms
- 嵌入向量Embeddings
Scalars是常用的可视化数据,如loss值,这里为一个浮点数,在构建TensorFlow数据图时,使用tf.summary.scalar()定义summary节点,数据图执行后,此数据将被输出到文件;
tf.summary.scalar('mean', tf.reduce_mean(var))
tf.summary.scalar('max', tf.reduce_max(var))
tf.summary.scalar('min', tf.reduce_min(var))
loss = tf.reduce_mean(tf.reduce_sum(tf.square((ylabel - yout)),reduction_indices = [1]))
tf.summary.scalar('loss', loss)
同样输出为直方图
hidel1 = tf.matmul(inputData,Weights) + basis
tf.summary.histogram('HiddenLayer1', hidel1)
在定义好如上节点后,需要进行合并以便运行这些的summary节点,之后使用方法tf.summary.FileWriter()将数据输出
log_dir = 'tblog/'
merged_summary_op = tf.summary.merge_all()
summary_writer = tf.summary.FileWriter(log_dir, sess.graph)
最后在运行过程中获取数据并输出,可以每隔几次迭代输出一次数据
epochs = 10000 #训练次数
for i in range(epochs):
sess.run(train)
if i % 1000 == 0:
print(sess.run(loss))
summary_str = sess.run(merged_summary_op)
summary_writer.add_summary(summary_str, i) #输出一次数据
启动Tensorboard
训练过程中会输出数据文件,此时可以实时的显示可视化结果,也可以训练结束后查看可视化结果;
Tensorboard需要手动启动,在Windows或Linux环境中的启动命令:
tensorboard --logdir=
如:tensorboard --logdir=F:\tblog
注:Windows下需要在数据文件的根目录执行此命令;
本机为Windows环境:
在浏览器中输入地址http://DESKTOP-6INT0GT:6006,为了保证兼容性,最好使用Chrome进行可视化;
结果:
同样可以查看数据图的可视化结构
【TensorFlow】TensorFlow基础 —— 模型的保存读取与可视化方法总结的更多相关文章
- tensorflow笔记:模型的保存与训练过程可视化
tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...
- Tensorflow学习笔记----模型的保存和读取(4)
一.模型的保存:tf.train.Saver类中的save TensorFlow提供了一个一个API来保存和还原一个模型,即tf.train.Saver类.以下代码为保存TensorFlow计算图的方 ...
- TensorFlow(十三):模型的保存与载入
一:保存 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #载入数据集 mnist ...
- TensorFlow 模型的保存与载入
参考学习博客: # https://www.cnblogs.com/felixwang2/p/9190692.html 一.模型保存 # https://www.cnblogs.com/felixwa ...
- 第六节,TensorFlow编程基础案例-保存和恢复模型(中)
在我们使用TensorFlow的时候,有时候需要训练一个比较复杂的网络,比如后面的AlexNet,ResNet,GoogleNet等等,由于训练这些网络花费的时间比较长,因此我们需要保存模型的参数. ...
- tensorflow模型的保存与恢复
1.tensorflow中模型的保存 创建tf.train.saver,使用saver进行保存: saver = tf.train.Saver() saver.save(sess, './traine ...
- Tensorflow模型变量保存
Tensorflow:模型变量保存 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献Tensorflow实战Google深度学习框架 实验平台: Tensorflow1.4.0 pyt ...
- Python之TensorFlow的模型训练保存与加载-3
一.TensorFlow的模型保存和加载,使我们在训练和使用时的一种常用方式.我们把训练好的模型通过二次加载训练,或者独立加载模型训练.这基本上都是比较常用的方式. 二.模型的保存与加载类型有2种 1 ...
- 三、TensorFlow模型的保存和加载
1.模型的保存: import tensorflow as tf v1 = tf.Variable(1.0,dtype=tf.float32) v2 = tf.Variable(2.0,dtype=t ...
随机推荐
- 【一起学源码-微服务】Hystrix 源码三:Hystrix核心流程:Hystix降级、熔断等原理剖析
说明 原创不易,如若转载 请标明来源! 欢迎关注本人微信公众号:壹枝花算不算浪漫 更多内容也可查看本人博客:一枝花算不算浪漫 前言 前情回顾 上一讲我们讲解了Hystrix在配合feign的过程中,一 ...
- postgresql gin索引使用
由于属于老项目,postgresql使用版本9.6,主要解决‘%name%"查询无法使用索引问题.pg_trgm模块提供函数和操作符测定字母,数字,文本基于三元模型匹配的相似性, 还有支持快 ...
- 01-web自动化基础篇
1.搭建环境 需要的环境 浏览器(Firefox/Chrome/IE…)-----选择Chrome Python Selenium Selenium IDE(如果用Firefox) FireBug.F ...
- ORM基础2 字段及其参数和meta
一.ORM简介 1.概念:ORM(Object Relational Mappingt ),对象关系映射 2.实质:类与数据库之间的映射 3.优点: 开发人员不用写数据库 4.缺点: 开发人员,数据库 ...
- B-Tree 和 B+Tree 结构及应用,InnoDB 引擎, MyISAM 引擎
1.什么是B-Tree 和 B+Tree,他们是做什么用的? B-Tree是为了磁盘或其它存储设备而设计的一种多叉平衡查找树,B-Tree 和 B+Tree 广泛应用于文件存储系统以及数据库系统中. ...
- python接口自动化中,注册接口随机生成手机号码
如大家所知在注册接口中,手机号参数需要的是未注册的手机号,而在测试用例中,你写入的手机号不一定是未注册的.所以这时需要对注册接口中传入的手机号做处理.下面我就分享一个课程里面学到的一个处理手机号的py ...
- 高精度算法(C/C++)
高精度算法 (C/C++) 做ACM题的时候,经常遇到大数的加减乘除,乘幂,阶乘的计算,这时给定的数据类型往往不够表示最后结果,这时就需要用到高精度算法.高精度算法的本质是把大数拆成若干固定长度的块, ...
- Frameworks.Entity.Core 1
CommonEnums 1系统模块BlockType 2证件类型IDType 3在线支付类型OnLineType 4操作权限,支持位移运算OperatorAuthority 5订单状态: 1000-待 ...
- Java容器解析系列(11) HashMap 详解
本篇我们来介绍一个最常用的Map结构--HashMap 关于HashMap,关于其基本原理,网上对其进行讲解的博客非常多,且很多都写的比较好,所以.... 这里直接贴上地址: 关于hash算法: Ha ...
- centos7+ docker 实践部署docker及配置direct_lvm
转载于博客园:http://www.cnblogs.com/Andrew-XinFei/p/6245330.html 前言 Docker现在在后端是那么的火热..尤其当笔者了解了docker是什么.能 ...