tensorflow 查看ckpt模型中参数值

有时我们有查看tensor内部变量的值的变化情况,需要挖一下,现给出解析代码:

复制代码
"""
@Date   :2021/5/18
@Author :xxx
"""
import os
from tensorflow.python import pywrap_tensorflow

base_model_dir = r'model-ckp-20210222'
target_model_dir = r'new_ckpt'
checkpoint_path_01 = os.path.join(base_model_dir, "model.ckpt-11383419")
checkpoint_path_02 = os.path.join(target_model_dir, "model.ckpt-94")
reader_01 = pywrap_tensorflow.NewCheckpointReader(checkpoint_path_01)
reader_02 = pywrap_tensorflow.NewCheckpointReader(checkpoint_path_02)
base_var_shape_map = reader_01.get_variable_to_shape_map()
target_shape_map = reader_02.get_variable_to_shape_map()
cnt = 0
tensor_name = 'output_weights'
print(reader_01.get_tensor(tensor_name))
print(reader_02.get_tensor(tensor_name))
for key1 in base_var_shape_map:
    if tensor_name in key1:
        print(reader_01.get_tensor(key1))
        print('tensor name:{}'.format(key1))

print('###############################')
for key1 in target_shape_map:
    if tensor_name in key1:
        print(reader_02.get_tensor(key1))
        print('tensor name:{}'.format(key1))
复制代码

 

梯度没有更新

梯度更新:

 

 由上我们知道,可以通过此方式进行训练参数冻结(如bert 12 layer),fintuing 指定参数完成特定任务

 

posted @   今夜无风  阅读(686)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2020-05-18 nltk.probability.FreqDist 自动识别语料库中词汇的频率分布
2019-05-18 opencc介绍
2019-05-18 百度AI文本审核API使用说明
点击右上角即可分享
微信分享提示