TensorFlow学习(三) 保存和恢复

本文介绍如何使用TensorFlow进行模型训练,并通过TensorBoard实现训练过程的可视化,展示损失函数和其他参数变化图。同时,介绍了如何保存和恢复模型的节点数据与元数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tensorflow训练过程中的可视化,是通过Tensorflow训练过程中生成摘要,再通过Tensorboard调用,可以直观看到损失函数和其他参数的变化图。其中对数据的命名,参考name_scope()中的作用,即方便Tensorboard中观察各变量。

tf.summary.scalar(a_name, a_tensor)
tf.summary.scalar(b_name, b_tensor)
#生成可写入摘要的变量集合,之后的变量不会写入摘要
merged = tf.summary.merge_all()
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    with tf.summary.Filewriter(filename, filepath) as writer:
        for index in range(1000):
            _, summary =  sess.run([train_op, merged], feed_dict={......})
            writer.add_summary(summary, global_step=index)

最后通过tensorboard命令访问保存的数据,可在powershell命令行里先进入到保存数据的根目录中,再输入如下内容,其中--log_dir指保存数据的目录。

tensorboard --logdir==./


TensorFlow支持训练时保存节点数据和元数据(meta_data),节点数据指被训练的参数,元数据指图(Graph)的结构数据。训练中数据可以保存,以供以后再次使用,或者加载别人已经过大量运算的数据结果,缩短训练时间。

saver = tf.train.Saver()
writer = saver.save(sess, ckpt_dir, global_step)
for index in range(1000):
    sess.run([train_op, feed_dict={....})
    #每训练100次记录一次训练数据和元数据
    if index % 100 == 0:
        saver.save(sess, ckpt_dir, global_step)

写入后,在ckpt_dir目录中会发现16个文件,一个checkpoint文件保存最近一次摘要结果,5个index文件和5个000000-000001-data文件代表最近5次节点数据摘要,5个meta文件代表最近5次元数据摘要

恢复节点数据需要tf.train.Saver().restore(session, ckpt_path),由于节点数据不包括图信息,需要tf.train.import_meta_graph(meta_path)

sess_store = tf.Session()
#ckpt_dir是checkpoint文件所在
ckpt = tf.train.get_checkpoint.state(ckpt_dir)
tf ckpt and ckpi.model_checkpoint_path:
    tf.train.import_meta_graph(meta_path)
    tf.train.Saver().restore(sess_restore, ckpt.model_checkpoint_path)
    graph = tf.get_default_graph()

之后就可以利用图的性质(property)读取节点和变量啦

graph = tf.get_default_graph
var1 = graph.get_tensor_by_name('var1')
train_op = graph.get_operation_by_name('train_op')

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值