热门标签 | 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进行可视化;

 

 

结果:

技术分享

 

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

技术分享

 





推荐阅读
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文介绍了在使用FIS配置过程中遇到的问题以及解决方法。作者发现在配置roadmap时使用命令行参数出现了诡异现象,uglify了js文件后,html中对js的引用没有被修改。经过多次尝试和验证,联系了FIS开发人员后才得知,使用fis.config.merge会导致一些问题。通过将fis.config.merge改为fis.config.get('roadmap.path').unshift()来添加配置,问题得以解决。文章指出FIS官方文档解释不够详细,提供了解决问题的方法。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
    本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文介绍了200个经典c语言源代码,包括函数的使用,如sqrt函数、clanguagefunct等。这些源代码可以帮助读者更好地理解c语言的编程方法,并提供了实际应用的示例。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 在Windows 10中点击“检查更新”按钮可能让你成为微软的测试补丁的“小白鼠”。微软每月的第三、第四周会向稳定通道的用户选择性发放“C”“D”测试补丁,而那些主动点击“检查更新”的用户可能会成为这些补丁的测试对象。这些补丁主要用于测试下一个Patch Tuesday的更新内容的稳定性,也可能用于修复个性化问题。因此,用户需要小心点击“检查更新”,以免遭受不必要的风险。 ... [详细]
  • 怀疑是每次都在新建文件,具体代码如下 ... [详细]
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社区 版权所有