我微调了 slim-tensorflow 库中给出的 InceptionNet v3 模型。我在自己的数据集上训练了模型。现在,我有模型的 .ckpt 和 .meta 文件。
现在,据我了解,我有两种方法可以恢复模型和权重。首先,从这样的 .meta 文件中
checkpoint = './fine_tuned_model/model.ckpt-233700.meta'
with tf.Session() as sess:
new_saver = tf.train.import_meta_graph(checkpoint)
print(new_saver)
new_saver.restore(sess, tf.train.latest_checkpoint('./fine_tuned_model/'))
第二种方法是调用模型并恢复检查点。像这样
with slim.arg_scope(slim.nets.inception.inception_v3_arg_scope()):
logits, inceptionv3 = nets.inception.inception_v3(inputs=img, num_classes=5980, is_training=True,
dropout_keep_prob=.6)
# Restore convolutional layers:
variables_to_restore = slim.get_variables_to_restore(exclude=['InceptionV3/Logits', 'InceptionV3/AuxLogits'])
init_fn = slim.assign_from_checkpoint_fn(model_path, variables_to_restore)
现在,我认为就我的目的而言,第二种方式更容易。
现在,我的问题是,在恢复模型后,如何在给定 Image的情况下从最后一层到最后一层提取特征?我在这里包含了模型的屏幕截图我 发现的一个解决方案是这样的
with tf.Session() as sess:
feature_tensor = sess.graph.get_tensor_by_name('mul:0')
features_last_layer = sess.run(feature_tensor,{inputs: img})
print features_last_layer
在这里,我无法找出应该传递给 get_tenor_by_name(??) 的内容,以及如何在这里传递 sess.run?
谢谢你。请让我知道是否有其他方法可以恢复模型并获取功能。