热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:TensorFlow基础——模型的保存读取与可视化方法总结

TensorFlow提供了一个用于保存模型的工具以及一个可视化方案这里使用的TensorFlow为1.3.0版本

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可以保存与显示的数据形式:


  1. 标量Scalars

  2. 图片Images

  3. 音频Audio

  4. 计算图Graph

  5. 数据分布Distribution

  6. 直方图Histograms

  7. 嵌入向量Embeddings

Scalars是常用的可视化数据,如loss值,这里为一个浮点数,在构建TensorFlow数据图时,使用tf.summary.scalar()定义summary节点,数据图执行后,此数据将被输出到文件;

  with tf.name_scope(‘var‘):

  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进行可视化;

 

 

结果:

技术分享

 

同样可以查看数据图的可视化结构

技术分享

 





推荐阅读
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 使用多项式拟合分析淘宝双11销售趋势
    根据天猫官方数据,2019年双11成交额达到2684亿元,再次刷新历史记录。本文通过多项式拟合方法,分析并预测未来几年的销售趋势。 ... [详细]
  • JComponentJLabel的setBorder前言用例2205262241前言setBorder(Border边框)实现自JComponentjava.awt.Insets ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
author-avatar
手机用户2502906803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有