神经网络的定量分析需要首先加载所有变量
TensorFlow。因此,我导入了SSDLite MobileNet v2
模型的检查点并恢复了权重。但是我无法通过使用某些功能来获得其权重或变量,例如get_all_coolection_keys
,get_collection
。该代码段如下:
import tensorflow as tf
import numpy as np
model_dir = 'ssdlite_mobilenet_v2_coco_2018_05_09'
checkpoint = tf.train.get_checkpoint_state(model_dir)
input_checkpoint = checkpoint.model_checkpoint_path # ssdlite_mobilenet_v2_coco_2018_05_09/model.ckpt
sess = tf.Session()
tf.reset_default_graph()
saver = tf.train.import_meta_graph(input_checkpoint + '.meta')
graph = tf.get_default_graph()
saver.restore(sess, input_checkpoint)
# INFO:tensorflow:Restoring parameters from ssdlite_mobilenet_v2_coco_2018_05_09/model.ckpt
graph_collections_keys = graph.get_all_collection_keys()
print(graph_collections_keys) # []
hyperparameters = tf.get_collection('hyperparameters')
print(len(hyperparameters)) # 0
model_variables = tf.get_collection(tf.GraphKeys.MODEL_VARIABLES)
print(len(model_variables)) # 0
那么,如何在TensorFlow中访问预训练模型的权重(名称和值)?
答案 0 :(得分:0)
朋友,您无法恢复变量名称,权重已尽其所能。同样在tensorflow或一般代码中,您获得的唯一还原选项是saver。这还取决于您要还原的数据类型是.npy
文件,然后np.load
可以还原。