TensorFlow模型持久化

本文详细介绍了如何使用TensorFlow保存训练完成的模型至.ckpt文件,并从该文件中加载模型进行预测。通过实例演示了变量声明、初始化、保存及加载的全过程。

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

通过TensorFlow程序持久化一个训练好的模型,并从持久化的模型文件中还原被保存的模型。

保存TensorFlow计算图:

import tensorflow as tf

#声明两个变量并计算它们的和
v1=tf.Variable(tf.constant(1.0,shape=[1]),name="v1")
v2=tf.Variable(tf.constant(2.0,shape=[1]),name="v2")
result=v1 + v2

init_op=tf.global_variables_initializer()
#声明tf.train.Saver类用于保存模型
saver=tf.train.Saver()

with tf.Session() as sess:
    sess.run(init_op)
    #将模型保存到model.ckpt文件
    saver.save(sess,"test/model.ckpt")

saver.save函数将TensorFlow模型保存到了test/model.ckpt文件中。TensorFlow模型一般会存在后缀为.ckpt的文件中。

这是test文件夹中的文件:

model.ckpt.meta,它保存了TensorFlow计算图的结构

model.ckpt,保存了TensorFlow程序中每一个变量的取值

checkpoint保存了一个目录下所有模型的列表。

 

 

加载已经保存的TensorFlow模型的方法:

import tensorflow as tf

#使用和保存模型代码中一样的方式来声明变量
v1=tf.Variable(tf.constant(1.0,shape=[1]),name="v1")
v2=tf.Variable(tf.constant(2.0,shape=[1]),name="v2")

result=v1+v2

saver=tf.train.Saver()

with tf.Session() as sess:
    #加载已经保存的模型,并通过已经保存的模型中变量的值来计算加法
    saver.restore(sess,"test/model.ckpt")
    print(sess.run(result))

运行结果:[3.]

 

上面两段代码唯一不同的是,在加载模型的代码中没有运行变量的初始化过程,而是通过变量的值通过已经保存的模型加载进来。

如果不希望定义图上的运算,可以直接加载已经持久化的图:

import tensorflow as tf

#z直接加载持久化的图
saver=tf.train.import_meta_graph("test/model.ckpt.meta")

with tf.Session() as sess:
    saver.restore(sess,"test/model.ckpt")
    #通过张量的名称来获取张量
    print(sess.run(tf.get_default_graph().get_tensor_by_name("add:0")))

运行结果:[3.]

这个程序默认保存和加载了TensorFlow计算图上定义的全部变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐亦亦乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值