tensorflow 模型權(quán)重導(dǎo)出實(shí)例
tensorflow在保存權(quán)重模型時(shí)多使用tf.train.Saver().save 函數(shù)進(jìn)行權(quán)重保存,保存的ckpt文件無法直接打開,不利于將模型權(quán)重導(dǎo)入到其他框架使用(如Caffe、Keras等)。
好在tensorflow提供了相關(guān)函數(shù) tf.train.NewCheckpointReader 可以對(duì)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)往往會(huì)保留多個(gè)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í)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python selenium登錄豆瓣網(wǎng)過程解析
這篇文章主要介紹了python selenium登錄豆瓣網(wǎng)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python實(shí)現(xiàn)JavaBeans流程詳解
這篇文章主要介紹了Python實(shí)現(xiàn)JavaBeans流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01
python 將numpy維度不同的數(shù)組相加相乘操作
這篇文章主要介紹了python 將numpy維度不同的數(shù)組相加相乘操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
keras Lambda自定義層實(shí)現(xiàn)數(shù)據(jù)的切片方式,Lambda傳參數(shù)
這篇文章主要介紹了keras Lambda自定義層實(shí)現(xiàn)數(shù)據(jù)的切片方式,Lambda傳參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Django用內(nèi)置方法實(shí)現(xiàn)簡(jiǎn)單搜索功能的方法
這篇文章主要介紹了Django用內(nèi)置方法實(shí)現(xiàn)簡(jiǎn)單搜索功能的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

