将tensorflow的ckpt模型存储为npy的实例
实例如下所示:
#coding=gbk
importnumpyasnp
importtensorflowastf
fromtensorflow.pythonimportpywrap_tensorflow
checkpoint_path='model.ckpt-5000'#yourckptpath
reader=pywrap_tensorflow.NewCheckpointReader(checkpoint_path)
var_to_shape_map=reader.get_variable_to_shape_map()
alexnet={}
alexnet_layer=['conv1','conv2','conv3','conv4','conv5','fc6','fc7','fc8']
add_info=['weights','biases']
alexnet={'conv1':[[],[]],'conv2':[[],[]],'conv3':[[],[]],'conv4':[[],[]],'conv5':[[],[]],'fc6':[[],[]],'fc7':[[],[]],'fc8':[[],[]]}
forkeyinvar_to_shape_map:
#print("tensor_name",key)
str_name=key
#因为模型使用Adam算法优化的,在生成的ckpt中,有Adam后缀的tensor
ifstr_name.find('Adam')>-1:
continue
print('tensor_name:',str_name)
ifstr_name.find('/')>-1:
names=str_name.split('/')
#firstlayernameandweight,bias
layer_name=names[0]
layer_add_info=names[1]
else:
layer_name=str_name
layer_add_info=None
iflayer_add_info=='weights':
alexnet[layer_name][0]=reader.get_tensor(key)
eliflayer_add_info=='biases':
alexnet[layer_name][1]=reader.get_tensor(key)
else:
alexnet[layer_name]=reader.get_tensor(key)
#savenpy
np.save('alexnet_pointing04.npy',alexnet)
print('savenpyover...')
#print(alexnet['conv1'][0].shape)
#print(alexnet['conv1'][1].shape)
以上这篇将tensorflow的ckpt模型存储为npy的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。