当前位置: 首页 > news >正文

变量的保存重载和打印

我们通过tf.train.Saver()来保存和重载变量

实现是保存

# Create some variables.
v1 = tf.get_variable("v1", shape=[3], initializer = tf.zeros_initializer)
v2 = tf.get_variable("v2", shape=[5], initializer = tf.zeros_initializer)

inc_v1 = v1.assign(v1+1)
dec_v2 = v2.assign(v2-1)

# Add an op to initialize the variables.
init_op = tf.global_variables_initializer()

# Add ops to save and restore all the variables.
saver = tf.train.Saver()

# Later, launch the model, initialize the variables, do some work, and save the
# variables to disk.
with tf.Session() as sess:
  sess.run(init_op)
  # Do some work with the model.
  inc_v1.op.run()
  dec_v2.op.run()
  # Save the variables to disk.
  save_path = saver.save(sess, "/tmp/model.ckpt")
  print("Model saved in path: %s" % save_path)

通过调用saver的save方法来保存,返回一个str,代表了路径。

然后展示的是我们保存部分变量和重载:

tf.reset_default_graph()
# Create some variables.
v1 = tf.get_variable("v1", [3], initializer = tf.zeros_initializer)
v2 = tf.get_variable("v2", [5], initializer = tf.zeros_initializer)

# Add ops to save and restore only `v2` using the name "v2"
saver = tf.train.Saver({"v2": v2})

# Use the saver object normally after that.
with tf.Session() as sess:
  # Initialize v1 since the saver will not.
  v1.initializer.run()
  saver.restore(sess, "/tmp/model.ckpt")

  print("v1 : %s" % v1.eval())
  print("v2 : %s" % v2.eval())

如果Saver中不传入参数,则会将所有的变量都保存。传入字典,则会按照字典中的key-value对变量进行保存。

对于不需要feed数据就可以获取的值,比如Variable。我们可以直接使用variable.eval()将变量的值打印出来。

它相当于:

tf.get_default_session().run(t)

 

相关文章:

  • Oracle将Java EE移交Eclipse基金会
  • Linux - 执行命令与脚本
  • HashMap ConcurrentHashMap
  • 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置...
  • 软件下载
  • 7. Oracle数据加载和卸载
  • 工作的第6个年头发现DateFormat是not synchronized
  • JAVA自学笔记18
  • android 9 patch
  • C#中string.format用法详解
  • session共享问题解决方案
  • C#编程(六十)----------LINQ的概述
  • 使用 Zipkin 和 Brave 实现分布式系统追踪
  • 让XCode自动CodeReview你的代码-OCLint使用
  • 对话翁志:京东大数据如何让技术真正落地
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • CSS3 变换
  • Docker: 容器互访的三种方式
  • ECMAScript6(0):ES6简明参考手册
  • ECS应用管理最佳实践
  • JavaScript 基础知识 - 入门篇(一)
  • Java知识点总结(JavaIO-打印流)
  • 构建工具 - 收藏集 - 掘金
  • ------- 计算机网络基础
  • 记一次用 NodeJs 实现模拟登录的思路
  • 如何利用MongoDB打造TOP榜小程序
  • 实现菜单下拉伸展折叠效果demo
  • 事件委托的小应用
  • 我的zsh配置, 2019最新方案
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • #FPGA(基础知识)
  • #Ubuntu(修改root信息)
  • #每天一道面试题# 什么是MySQL的回表查询
  • %check_box% in rails :coditions={:has_many , :through}
  • (03)光刻——半导体电路的绘制
  • (ZT)一个美国文科博士的YardLife
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (四)Controller接口控制器详解(三)
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .bat批处理(一):@echo off
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET 反射 Reflect
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .py文件应该怎样打开?
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /proc/vmstat 详解