🍪
cookielau
  • Introduction
  • Machine Learning
    • Distributed
      • Bookmarks
    • NLP
      • Transformers
    • MLC
      • Tensor Program Abstraction
      • End-to-End Module Execution
  • Framework
    • PyTorch
      • Bookmarks
      • Model
      • Shared
      • Miscellaneous
    • Tensorflow
      • Bookmarks
      • Model
      • Shared
      • Miscellaneous
    • CUDA
      • Bookmarks
    • DeepSpeed
    • Bagua
      • Model
      • Optimizer
    • Others
      • Bookmarks
  • About Me
    • 2022-04-28
  • Random Thoughts
  • Archives
    • CPP
      • Bookmarks
      • Container
      • Algorithm
      • FILE CONTROL
      • Virtual Table
      • Assembly
      • Key Words
      • Problems
      • Others
    • JAVA
      • String Container
      • Maps
    • PYTHON
      • Bookmarks
      • Python Tools
        • Batch Rename
        • Combine Excel
        • Excel Oprations
        • Read Write Excel
        • Rotate PDF
      • Library
        • Pandas Notes
        • Numpy Notes
        • Json Notes
      • Spider
        • Selenium Install
        • Selenium Locating
        • Selenium Errors
        • Selenium Basics
      • Django
        • Start Up
      • Others
    • LINUX
      • Installation
      • Cli Tools
      • WSL
      • Bugs
    • JUNIOR2
      • Economics
        • Chapter 0x01 经济管理概述
        • Chapter 0x02 微观市场机制分析
        • Chapter 0x03 生产决策与市场结构
        • Chapter 0x04 宏观经济市场分析
        • Chapter 0x05 管理的职能
        • Chapter 0x06 生产系统结构与战略
        • Chapter 0x0b 投资项目经济评价
        • Chapter 0x0f 投资项目经济评价
      • Computer Network
        • 概述
        • 分层模型
        • 物理层
        • 数据链路层
        • 网络层
        • 传输层
        • 应用层
        • HTTP(s)实验
        • [Practice]
      • Software Engineering
        • Introduction
        • Demand Analysis
        • Task Estimation
        • Presentation
      • Network Security
        • Chapter 0x01 概述
        • Chapter 0x02 密码学
        • Chapter 0x03 公钥体制
        • Chapter 0x04 消息认证
        • Chapter 0x05 密钥管理
        • Chapter 0x06 访问控制
        • Assignments
      • x86 Programming
        • Basic Knowledge
        • Program Design
        • System Interruption
        • Frequently used functions
    • MD&LaTex
      • Markdown
      • LaTex
    • NPM
      • NPM LINK
    • MyBlogs
      • 2020BUAA软工——“停下来,回头看”
      • 2020BUAA软工——“初窥构建之法”
      • 2020BUAA软工——“上手软件工程,PSP初体验!”
      • 2020BUAA软工——“深度评测官”
      • 2020BUAA软工——“并肩作战,平面交点Pro”
    • SC
      • PAC 2022
        • Lectures
      • OpenMP & MPI
        • MPI Overview
        • Message Passing Programming
        • OpenMP Overview
        • Work Sharing Directives
        • Annual Challenge
        • Future Topics in OpenMP
        • Tasks
        • OpenMP & MPI
    • Hardware
      • Nvidia GPU
        • Frequent Error
        • Memory Classification
        • CUDA_7_Streams_Simplify_Concurrency
        • Optimize_Data_Transfers_in_CUDA
        • Overlap_Data_Transfers_in_CUDA
        • Write_Flexible_Kernels_with_Grid-Stride_Loops
        • How_to_Access_Global_Memory_Efficiently
        • Using_Shared_Memory
      • Intel CPU
        • Construction
        • Optimization
        • Compilation
        • OpenMP
    • English
      • Vocab
      • Composition
    • Interview
      • Computer Network
Powered by GitBook
On this page
  • Checkpoint related
  • checkpoint
  • saved_model
  • pb
  • keras h5

Was this helpful?

  1. Framework
  2. Tensorflow

Miscellaneous

PreviousSharedNextCUDA

Last updated 3 years ago

Was this helpful?

Checkpoint related

  • Comparison:

    • Checkpoint(*.ckpt)

      • Contains three files normally: model.ckpt.index model.ckpt.meta model.ckpt.data-00000-of-00001

      • Saved by tf.trainer.Saver().save(), only save the tf.Variables(), not including graph model, thus impossible to recover a whole graph with ckpt only.

      • Use saver.restore(session, checkpoint_path) to restore.

    • GraphDef(*.pb)

      • Contains serialized protobuf data and compute graph, but not Variable data.

      • Can only recover compute graph, need checkpoint to inject data.

      • FrozenGraphDef is slightly different, since it will convert all Variable to constant values(which can be loaded from checkpoint), usually used as pre-train model.

    • SavedModel

      • Combination of checkpoint and GraphDef, plus SignatureDef of input and output variables.

Reference:

checkpoint

  • Print parameters in checkpoint

  1. Using internal tool -- inspect_checkpoint:

    python -m tensorflow.python.tools.inspect_checkpoint --file_name=model.ckpt "$@"
  2. Using tf.compat.v1.NewCheckpointReader(ckpt_path):

    ckpt_path = "./model.ckpt"
    reader = tf.compat.v1.train.NewCheckpointReader(ckpt_path)
    var_to_shape_map = reader.get_variable_to_shape_map()
    for key in var_to_shape_map:
        print(f"{key}: {reader.get_tensor(key)}")

saved_model

pb

keras h5

Keras save its model in h5 format, so we need to know how to read h5 in python if we only want to search for some specific parameters.

# import related lib
import h5py

# init a file object with only-read permission
f = h5py.File(path_to_h5, 'r')

# list its keys
list(f.keys())

# h5 file can be indexed by keywords
list(f['model_weights'].keys()) 

# indexed into deeper layer
f['model_weights']['dense_73']
# Out: <HDF5 group "/model_weights/dense_73" (1 members)>
# Group means it has children leaves, can be indexed deeper by key

f['model_weights']['dense_73']['dense_73']['kernel:0']
# Out: <HDF5 dataset "kernel:0": shape (768, 22), type "<f4">
# dataset means it can be read now

# dataset can be read as list, numpy, etc.
list(f['model_weights']['dense_73']['dense_73']['bias:0'])

# dataset also has shape
f['model_weights']['dense_73']['dense_73']['kernel:0'].shape
# Out: (768, 22)

Reference:

Reference:

TensorFlow 到底有几种模型格式?
如何打印出TensorFlow保存的checkpoint里的参数名
模型复现之HDF5文件