返回介绍

Saver 保存读取

发布于 2025-05-02 13:36:23 字数 1955 浏览 0 评论 0 收藏

作者: Morvan 编辑: Morvan

我们搭建好了一个神经网络,训练好了,肯定也想保存起来,用于再次加载. 那今天我们就来说说怎样用 Tensorflow 中的 saver 保存和加载吧。

本节内容:

保存

import 所需的模块,然后建立神经网络当中的 Wb , 并初始化变量。

import tensorflow as tf
import numpy as np

## Save to file
# remember to define the same dtype and shape when restore
W = tf.Variable([[1,2,3],[3,4,5]], dtype=tf.float32, name='weights')
b = tf.Variable([[1,2,3]], dtype=tf.float32, name='biases')

# init= tf.initialize_all_variables() # tf 马上就要废弃这种写法
# 替换成下面的写法:
init = tf.global_variables_initializer()

保存时,首先要建立一个 tf.train.Saver() 用来保存,提取变量. 再创建一个名为 my_net 的文件夹,用这个 saver 来保存变量到这个目录 "my_net/save_net.ckpt" .

saver = tf.train.Saver()

with tf.Session() as sess:
    sess.run(init)
    save_path = saver.save(sess, "my_net/save_net.ckpt")
    print("Save to path: ", save_path)

"""    
Save to path:  my_net/save_net.ckpt
"""

提取

提取时,先建立零时的 Wb 容器. 找到文件目录,并用 saver.restore() 我们放在这个目录的变量。

# 先建立 W, b 的容器
W = tf.Variable(np.arange(6).reshape((2, 3)), dtype=tf.float32, name="weights")
b = tf.Variable(np.arange(3).reshape((1, 3)), dtype=tf.float32, name="biases")

# 这里不需要初始化步骤 init= tf.initialize_all_variables()

saver = tf.train.Saver()
with tf.Session() as sess:
    # 提取变量
    saver.restore(sess, "my_net/save_net.ckpt")
    print("weights:", sess.run(W))
    print("biases:", sess.run(b))

"""
weights: [[ 1.  2.  3.]
          [ 3.  4.  5.]]
biases: [[ 1.  2.  3.]]
"""

如果你觉得这篇文章或视频对你的学习很有帮助,请你也分享它,让它能再次帮助到更多的需要学习的人。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。