如何恢复tensorflow inceptions checkpoint文件(ckpt)?

时间:2016-10-11 17:55:04

标签: python tensorflow

我有inception_resnet_v2_2016_08_30.ckpt文件,这是一个预先训练过的初始模型。我想使用

恢复此模型

saver.restore(sess, ckpt_filename)

但为此,我将需要编写训练此模型时使用的变量集。我在哪里可以找到这些(脚本或详细说明)?

2 个答案:

答案 0 :(得分:1)

首先,你们已经在内存中获得了网络架构。您可以从here

获取网络架构

一旦有了这个程序,请使用以下方法来使用该模型:

from inception_resnet_v2 import inception_resnet_v2, inception_resnet_v2_arg_scope

height = 299
width = 299
channels = 3

X = tf.placeholder(tf.float32, shape=[None, height, width, channels])
with slim.arg_scope(inception_resnet_v2_arg_scope()):
     logits, end_points = inception_resnet_v2(X, num_classes=1001,is_training=False)

这样你就拥有了内存中的所有网络,现在你可以使用tf.train.saver用checkpoint文件(ckpt)初始化网络:

saver = tf.train.Saver()
sess = tf.Session()
saver.restore(sess, "/home/pramod/Downloads/inception_resnet_v2_2016_08_30.ckpt")

如果你想做瓶子提取,它就像你想要从最后一层获得功能一样简单,那么你只需要声明predictions = end_points["Logits"] 如果你想为其他中间层获取它,你可以从上面的程序中获取这些名称inception_resnet_v2.py

之后,您可以致电:output = sess.run(predictions, feed_dict={X:batch_images})

答案 1 :(得分:0)

我相信MetaGraph mechanism就是您所需要的。

编辑:另外,请查看read -p "Enter the number of user and press [ENTER]:" num for ((i=1; i<=$num; i++)); do var_j="|-> Line $i" echo $var_j done - 它有一个tf.train.NewCheckpointReader方法。请参阅unit test