代码:

#!usr/bin/env python
# coding:utf-8
"""
这个代码的作用是 通过 tensorflow 来计算
y = 0.3x + 0.1 的线性方程
通过随机数,, 然后传递值到 训练模型中开始计算

并在 运行结束后, 将变量保存起来, 在下次运行的时候直接读取.
"""
import tensorflow as tf
import numpy as np
import os

# 建立方程组:
# 使用 np 获取一个 1---1000 的随机数
x_data = np.float32(np.random.rand(1, 100))
# 设置 方程组
y_data = 0.1 * x_data + 0.300

# 建立 模型
# 初始化 wieght 范围为-1 --> 1
Weight = tf.Variable(tf.random_uniform([1], -1.0, 1.0), name='Weight')
# 设置 b 初始化为 tf.zeros(1) 在初始化的时候会被置为0 , 然后为了保证 b 不为0 , 设置+0.1
b = tf.Variable(tf.zeros(1), name='b') + 0.1

x = tf.placeholder('float')
y_ = tf.mul(x, Weight) + b

# 梯度下降法, 来降低 weight 和b 值在修改中的改变

loss = tf.reduce_mean(tf.square(y_ - y_data))
train = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

init = tf.global_variables_initializer()
sess = tf.Session()

saver = tf.train.Saver({"Weight": Weight})
# 还原保存数据 或者 初始化 变量
sess.run(init)
if os.path.exists("save_path"):
saver.restore(sess, "save_path/test.ckpt")

for i in range(1000):
# 如果直接 用 x_data 传入 y_ = tf.mul(x_data,Weight) 的话, 这里的 feed_dict 是不用赋值的.
sess.run(train, feed_dict={x: x_data})
if i % 100 == 0:
print(sess.run(Weight), sess.run(b))
print(sess.run(Weight), sess.run(b))
# 结束后, 保存变量.
if not os.path.exists("save_path"):
os.mkdir("save_path")
saver.save(sess, "save_path/test.ckpt")
sess.close()

基于之前的代码之上添加了 变量的保存和 恢复:
saver = tf.train.Saver({"Weight": Weight})
# 还原保存数据 或者 初始化 变量
sess.run(init)
if os.path.exists("save_path"):
saver.restore(sess, "save_path/test.ckpt")

for i in range(1000):
# 如果直接 用 x_data 传入 y_ = tf.mul(x_data,Weight) 的话, 这里的 feed_dict 是不用赋值的.
sess.run(train, feed_dict={x: x_data})
if i % 100 == 0:
print(sess.run(Weight), sess.run(b))
print(sess.run(Weight), sess.run(b))
# 结束后, 保存变量.
if not os.path.exists("save_path"):
os.mkdir("save_path")
saver.save(sess, "save_path/test.ckpt")
sess.close()

我暂时不知道怎么去 单独的恢复 一个变量, 只能是先在 恢复当个参数之前 加上 初始化全部参数了 ,

这个是生成出来的文件夹. 需要用到 python 的 os 库.



tensorflow 保存变量,的更多相关文章

  1. 转载:tensorflow保存训练后的模型

    训练完一个模型后,为了以后重复使用,通常我们需要对模型的结果进行保存.如果用Tensorflow去实现神经网络,所要保存的就是神经网络中的各项权重值.建议可以使用Saver类保存和加载模型的结果. 1 ...

  2. 131、TensorFlow保存模型

    # tf.train.Saver类提供了保存和恢复模型的方法 # tf.train.Saver的构造函数 提供了save和恢复的参数选项 # Saver对象提供了方法来运行这些计算节点,制定了写和读的 ...

  3. TensorFlow保存、加载模型参数 | 原理描述及踩坑经验总结

    写在前面 我之前使用的LSTM计算单元是根据其前向传播的计算公式手动实现的,这两天想要和TensorFlow自带的tf.nn.rnn_cell.BasicLSTMCell()比较一下,看看哪个训练速度 ...

  4. Tensorflow保存神经网络参数有妙招:Saver和Restore

    摘要:这篇文章将讲解TensorFlow如何保存变量和神经网络参数,通过Saver保存神经网络,再通过Restore调用训练好的神经网络. 本文分享自华为云社区<[Python人工智能] 十一. ...

  5. TF:Tensorflow定义变量+常量,实现输出计数功能—Jason niu

    #TF:Tensorflow定义变量+常量,实现输出计数功能 import tensorflow as tf state = tf.Variable(0, name='Parameter_name_c ...

  6. MATLAB 不能保存变量问题及解决办法

    在使用matlab保存结构体.元胞数组等等的变量时,matlab总是提示 警告: 未保存变量 'session'.对于大于 2GB 的变量,请使用 MAT 文件版本 7.3 或更高版本.  问题如下: ...

  7. JSP显示错误信息中四个范围来保存变量

    JSP中提供了四个范围来保存变量,分别是page,request,session,以及application 其中page范围只在当前页面有效,离开当前页面就失效了,这个肯定不行 request范围在 ...

  8. useRef获取DOM元素和保存变量(十)

    useRef在工作中虽然用的不多,但是也不能缺少.它有两个主要的作用: 用useRef获取React JSX中的DOM元素,获取后你就可以控制DOM的任何东西了.但是一般不建议这样来作,React界面 ...

  9. Tensorflow模型变量保存

    Tensorflow:模型变量保存 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献Tensorflow实战Google深度学习框架 实验平台: Tensorflow1.4.0 pyt ...

随机推荐

  1. PHP学习心得(五)——类型

    简介 PHP 支持8种基本的数据类型. 四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: ...

  2. sql server2005主从数据库同步配置

    网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求:这时候我们可以考虑使用主从库.主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据的 ...

  3. 水晶報表中小寫變大寫的函數-VB

    Function total (ls as number) as string dim dx_sz as string dim dx_dw as string dim str_int as strin ...

  4. angular分页指令

    目前的多个项目中都用到分页这个功能,为了提高可复用性,我特地分离出来写了个分页的指令.直接贴代码,详情如下: index.html <body id="sBill" ng-c ...

  5. Steam游戏黑屏与游戏直接安装方法

    黑屏原因主要是360禁止了反作弊进程,解决方法: Steam游戏目录: Steam\steamapps\common\*** 例如黎明杀机,备份时候可直接备份该目录下 Dead by Daylight ...

  6. Re-installation failed due to different application signatures./package name has exist

    http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html

  7. [原博客] POI系列(4)

    正规.严谨.精妙. -POI BZOJ 1531 : [POI2005]Bank notes 裸的背包,可以二进制拆分一下.一个物品比如说有n个,可以拆成 1,2,4,8,16...个. OJ上没有样 ...

  8. 关于entity framework

    http://www.cnblogs.com/lsxqw2004/archive/2009/05/31/1495240.html http://www.open-open.com/lib/view/o ...

  9. 【HDOJ】4553 约会安排

    线段树.线段树的细节很重要,小数据遍历可以发现问题. /* 4553 */ #include <iostream> #include <string> #include < ...

  10. 【HDOJ】1059 Dividing

    多重背包. #include <stdio.h> #include <string.h> #define mymax(a, b) (a>b) ? a:b ]; ]; vo ...