将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的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。