tensorflow小技巧之查看保存模型参数的 name 和 value

tensorflow小技巧之查看保存模型参数的 name 和 value

在将tensorflow训练好的模型保存之后,可能会遇见需要查看其中的权重和偏置的名称以及具体的值的大小,可以使用tensorflow.python 中的 pywrap_tensorflow库进行查看
具体程序如下:

import os
from tensorflow.python import pywrap_tensorflow
num_epoch = 199
model_path = r'checkpoint\Autoencoder_128_Pixel_Grad\Autoencoder.model-' + str(num_epoch)
model_path = os.path.join(os.getcwd(), model_path)
rule_num_epoch = 49
rule_model_path = './checkpoint/UNet_Fusion_Rule_128_MSE/RuleModel.model-' + str(rule_num_epoch)
# Read data from checkpoint file
reader = pywrap_tensorflow.NewCheckpointReader(rule_model_path)
var_to_shape_map = reader.get_variable_to_shape_map()
# Print tensor name and values
for key in var_to_shape_map:
    print("name: ", key)
    print(reader.get_tensor(key))

在这里插入图片描述
模型保存的形式如上图所示。
查看结果则如下图所示。
在这里插入图片描述
因为值无法完全显示,所以只展示name。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

Timer-419

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

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

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

打赏作者

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

抵扣说明:

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

余额充值