TensorFlow 获取保存模型的参数值

原文链接: TensorFlow 获取保存模型的参数值

上一篇: TensorFlow 线性回归 拟合

下一篇: TensorFlow 变量定义 初始化和共享

tf的所有操作必须使用run才能生效

所以只有W的值被改变了,b的值依然是0

保存模型

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

# 模型参数
W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")
init = tf.global_variables_initializer()
saver = tf.train.Saver()

with tf.Session() as sess:
    sess.run(init)

    # 所有操作必须使用run才能生效
    sess.run(tf.assign(W, tf.constant(10., shape=[1])))
    tf.assign(b, tf.constant(10., shape=[1]))
    saver.save(sess, 'net/my_net.ckpt')

模型参数值的获取

from tensorflow.python.tools.inspect_checkpoint import print_tensors_in_checkpoint_file

save_dir = 'net/'
print_tensors_in_checkpoint_file(save_dir + 'my_net.ckpt', None, True)
tensor_name:  bias
[0.]
tensor_name:  weight
[10.]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow 中,可以使用 `tf.saved_model` 模块保存模型及其数。这个模块提供了一个 API,用于将 TensorFlow 模型导出为 SavedModel 格式。SavedModel 是一种可移植的模型格式,可用于部署到不同的平台上。 以下是保存模型及其数的步骤: 1. 定义模型并训练它。 2. 创建一个 `tf.saved_model.Builder` 对象。 ```python import tensorflow as tf # 定义模型 model = tf.keras.models.Sequential([ tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10) ]) # 训练模型 model.compile(optimizer=tf.keras.optimizers.Adam(0.01), loss=tf.keras.losses.CategoricalCrossentropy(from_logits=True), metrics=[tf.keras.metrics.CategoricalAccuracy()]) model.fit(x_train, y_train, epochs=5) ``` 3. 使用 `tf.saved_model.Builder` 对象保存模型及其数。 ```python # 创建一个 tf.saved_model.Builder 对象 export_dir = 'saved_model/1' builder = tf.saved_model.builder.SavedModelBuilder(export_dir) # 定义输入和输出的 Tensor 对象 inputs = {'input': tf.saved_model.utils.build_tensor_info(model.input)} outputs = {'output': tf.saved_model.utils.build_tensor_info(model.output)} # 定义签名方法 signature_def = tf.saved_model.signature_def_utils.build_signature_def( inputs=inputs, outputs=outputs, method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME) # 将模型和签名方法添加到 SavedModelBuilder 对象中 builder.add_meta_graph_and_variables( sess=tf.keras.backend.get_session(), tags=[tf.saved_model.tag_constants.SERVING], signature_def_map={ tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature_def }) # 保存模型 builder.save() ``` 以上代码将模型及其保存在 `saved_model/1` 目录下。该目录中包含一个 `saved_model.pb` 文件和一个 `variables` 目录。`saved_model.pb` 文件定义了模型的计算图,`variables` 目录存储了模型数。 可以使用以下代码加载已保存模型: ```python # 加载 SavedModel loaded_model = tf.saved_model.load(export_dir) # 获取模型的签名方法 signature = list(loaded_model.signatures.values())[0] # 运行模型 result = signature(input=tf.constant([[1.0, 2.0, 3.0, 4.0]]))['output'] print(result) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值