tensorflow 模型權(quán)重導(dǎo)出實(shí)例
tensorflow在保存權(quán)重模型時多使用tf.train.Saver().save 函數(shù)進(jìn)行權(quán)重保存,保存的ckpt文件無法直接打開,不利于將模型權(quán)重導(dǎo)入到其他框架使用(如Caffe、Keras等)。
好在tensorflow提供了相關(guān)函數(shù) tf.train.NewCheckpointReader 可以對ckpt文件進(jìn)行權(quán)重查看,因此可以通過該函數(shù)進(jìn)行數(shù)據(jù)導(dǎo)出。
import tensorflow as tf
import h5py
cpktLogFileName = r'./checkpoint/checkpoint' #cpkt 文件路徑
with open(cpktLogFileName, 'r') as f:
#權(quán)重節(jié)點(diǎn)往往會保留多個epoch的數(shù)據(jù),此處獲取最后的權(quán)重?cái)?shù)據(jù)
cpktFileName = f.readline().split('"')[1]
h5FileName = r'./model/net_classification.h5'
reader = tf.train.NewCheckpointReader(cpktFileName)
f = h5py.File(h5FileName, 'w')
t_g = None
for key in sorted(reader.get_variable_to_shape_map()):
# 權(quán)重名稱需根據(jù)自己網(wǎng)絡(luò)名稱自行修改
if key.endswith('w') or key.endswith('biases'):
keySplits = key.split(r'/')
keyDict = keySplits[1] + '/' + keySplits[1] + '/' + keySplits[2]
f[keyDict] = reader.get_tensor(key)
以上這篇tensorflow 模型權(quán)重導(dǎo)出實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch的torch.utils.data中Dataset以及DataLoader示例詳解
torch.utils.data?是?PyTorch?提供的一個模塊,用于處理和加載數(shù)據(jù),該模塊提供了一系列工具類和函數(shù),用于創(chuàng)建、操作和批量加載數(shù)據(jù)集,這篇文章主要介紹了Pytorch的torch.utils.data中Dataset以及DataLoader等詳解,需要的朋友可以參考下2023-08-08
Python各種擴(kuò)展名區(qū)別點(diǎn)整理
在本篇文章里小編給大家整理的是關(guān)于Python各種擴(kuò)展名區(qū)別點(diǎn)整理,需要的朋友們可以學(xué)習(xí)下。2020-02-02
python 三種方法實(shí)現(xiàn)對Excel表格的讀寫
這篇文章主要介紹了python 三種方法實(shí)現(xiàn)對Excel表格的讀寫,幫助大家更好的利用python處理表格,感興趣的朋友可以了解下2020-11-11
python用sqlacodegen根據(jù)已有數(shù)據(jù)庫(表)結(jié)構(gòu)生成對應(yīng)SQLAlchemy模型
本文介紹了如何使用sqlacodegen獲取數(shù)據(jù)庫所有表的模型類,然后使用ORM技術(shù)進(jìn)行CRUD操作,有此需求的朋友可以了解下本文2021-06-06

