tensflow

Tensorflow进阶(二)

2018-11-19  本文已影响146人  Daily_Note

Tensorflow进阶

记录,成为更好的自己

1.图

2.会话

3.张量

4.变量

5.模型保存和加载

6.自定义命令行参数


4. 变量

变量也是一种op,是一种特殊的张量,能够进行存储持久化,它的值就是张量

1. 变量op能够持久化保存,普通张量是不行的。如线性回归中的参数,系数就需要持久化保存。

2. 当定义一个变量op的时候,一定要在会话当中去运行初始化

  1. 变量的创建

    • 创建一个带值initial_value的新变量

      tf.Variable(initial_value=None, name=None)

  2. 变量的初始化

    • tf.global_variables_initializer()
# 变量op
a = tf.constant([1,2,3,4,5])
var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0))
print(a, var)
# 必须做初始化
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
    # 必须运行初始化op
    sess.run(init_op)
    print(sess.run([a, var]))
  1. 变量的作用域

可视化学习Tensorboard

with tf.Session() as sess:
    # 把程序的图结构写入事件文件,graph:把指定的图写入事件中
    filewriter = tf.summary.FileWriter('./summary/test', graph=sess.graph)

增加变量显示

目的:观察模型的参数,损失值等变量值的变化

  1. 收集变量
    • tf.summary.scalar(name="",tensor)收集对于损失函数和准确率等单值变量。

      name为变量的名字,tensor为收集哪一个tensor

    • tf.summary.histogram(name="", tensor)收集高维度的变量参数

    • tf.summary.image(name="",tensor)收集输入的图片张量能显示图片

  2. 合并变量写入事件文件
    • merged=tf.summary.merge_all()
    • 运行合并:summary=sess.run(merged)每次迭代都需运行
    • 添加:FileWriter.add_summary(summary, i)i表示第几次的值

5. 模型保存和加载

保存的就是变量
保存模型的文件:checkpoint文件 检查点文件

6. 自定义命令行参数

  1. 首先定义有哪些参数需要在运行时候指定
  2. 程序当中获取定义命令行参数
import tensorflow as tf
# 获取命令行参数名字
FLAGS = tf.app.flags.FLAGS

# 第一个参数:名字,默认值,说明
tf.app.flags.DEFINE_integer("max_step", 100, "模型训练的步数")
tf.app.flags.DEFINE_string("model_dir", "./ckpt/model", "模型文件的加载路径")

# 调用
print(FLAGS.max_step)
print(FLAGS.model_dir)
上一篇 下一篇

猜你喜欢

热点阅读