zoukankan      html  css  js  c++  java
  • tensorflow:模型的保存和训练过程可视化

    在使用tf来训练模型的时候,难免会出现中断的情况。这时候自然就希望能够将辛辛苦苦得到的中间参数保留下来,不然下次又要重新开始。

    保存模型的方法:

    #之前是各种构建模型graph的操作(矩阵相乘,sigmoid操作等...)
    saver=tf.train.Saver()#生成saver
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())#先对模型进行初始化
        #然后将数据丢入模型进行训练blabla
        #训练完之后,使用saver.save来保存
        saver.save(sess,'save_pathfile_name')#file_name如果不存在的话,将会自动创建

    将模型保存好以后,载入也比较方便。

    saver=tf.train.Saver()
        with tf.Session() as sess:
            #参数可以进行初始化也可以不进行初始化,即使初始化了,初始化的值也会被restore的值覆盖
            sess.run(tf.global_variables_initializer())
            saver.restore(sess,'save_pathfile_name')#会将已经保存的变量值restore到变量中

    使用tensorboard来使训练过程可视化

    tensorflow还提供了一个可视化工具,叫tensorboard.启动以后,可以通过网页来观察模型的结构和训练过程中各个参数的变化。

    流程如下所示:
    1.使用tf.scalar_summary来收集想要显示的变量

    2.定义一个summary op,用来汇总多个变量

    3.得到一个summary writer,指定写入路径

    4.通过summary_str=sess.run()

    #由之前的各种运算得到此批数据的loss
    loss=......
    #使用tf.scalar_summary来收集想要显示的变量,命名为loss
    tf.scalar_summary('loss',loss)
    #定义一个summary op,用来汇总由scalar_summary记录的所有变量
    merged_summary_op=tf.merge_all_summaries()
    #生成一个summary writer对象,需要指定写入路径
    summary_writer=tf.train.SummaryWriter('/tmp/logdir',sess.graph)
    #开始训练,分批喂数据
    for i in range(batch_sum):
        #使用sess.run来得到merged_summary_op的返回值
        summary_str=sess.run(merged_summary_op)
        #使用summary writer将运行中的loss值传入
        summary_writer.add_summary(summary_str,i)

    接下里,程序开始运行之后,到shell中运行:

    $ tensorboard --logdir /tmp/logdir

    开始运行tensorboard.接下来打开浏览器,进入127.0.0.1:6006 就能够看到loss值在训练中的变化值了。

  • 相关阅读:
    通用测试用例(二)
    loadrunner基础学习笔记八-分析场景
    loadrunner基础学习笔记七-面向目标场景
    Detect the Virus ZOJ
    考研路茫茫——单词情结 HDU
    DNA Sequence POJ
    病毒侵袭持续中 HDU
    病毒侵袭 HDU
    Keywords Search HDU
    codeforces 949B :A Leapfrog in the Array 找规律
  • 原文地址:https://www.cnblogs.com/qniguoym/p/7783525.html
Copyright © 2011-2022 走看看