美文网首页tensflow
Tensorflow进阶(二)

Tensorflow进阶(二)

作者: Daily_Note | 来源:发表于2018-11-19 16:13 被阅读146次

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. 变量的作用域
  • 作用:

    让模型代码更加清晰,作用分明

  • tf.variable_scope(<scope_name>)创建指定名字的变量作用域


可视化学习Tensorboard

  • 数据序列化
    • events文件
    • tensorboard通过读取TensorFlow的事件文件来运行
  • tf.summary.FileWriter('文件路径', graph=)
    返回filewriter,写入事件文件到指定目录(最好用绝对路劲),以提供给tensorboard使用
  • 开启tensorboard
    --logdir='文件路径'
    一般浏览器打开为127.0.0.1:6006
    注意:修改程序后,再保存一遍会有新的事件文件,打开默认为最新的。
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文件 检查点文件

  • tf.train.Saver(var_list=None,max_to_keep=5)
    • var_list:指定将要保存和还原的变量。它可以作为一个dict或者一个列表传递。
    • max_to_keep:指定要保留的最近检查点文件的最大数量。创建新文件时,会删除较旧的文件。如果无或0,则保留所有检查点文件。默认为5。(保留最新的5个检查点文件。)

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)

相关文章

网友评论

    本文标题:Tensorflow进阶(二)

    本文链接:https://www.haomeiwen.com/subject/parafqtx.html