我如何在DNN中重用训练模型?

时间:2017-11-21 02:06:34

标签: tensorflow

大家好!

我有一个问题在训练模型中重新使用(tensorflow)。

我有火车模型

我想预测新数据使用训练模型。

我使用DNNClassifier。

我有一个model.ckpt-200000.meta,model.ckpt-200000.index,checkpoint和eval文件夹。

但我不知道重复使用这个模型..

请帮助我。

1 个答案:

答案 0 :(得分:0)

首先,您需要导入图表,

with tf.Session() as sess:
  sess.run(tf.global_variables_initializer())
  new_saver = tf.train.import_meta_graph('model.ckpt-200000.meta')
  new_saver.restore(sess, tf.train.latest_checkpoint('./'))

然后你可以给图表输入并获得输出。

graph = tf.get_default_graph()
input = graph.get_tensor_by_name("input:0")#input tensor by name    
feed_dict ={input:} #input to the model

#Now, access theoutput operation. 
op_to_restore = graph.get_tensor_by_name("y_:0") #output tensor

print sess.run(op_to_restore,feed_dict) #get output here

很少有事情需要注意,

  • 您可以将上述代码替换为图表的训练部分 (你可以在没有经过培训的情况下获得输出)。
  • 但是,您仍然需要像以前一样构建图表 只替换训练部分。

  • 上述方法仅加载构造图的权重。因此,您必须首先构建图形。

这里有一个很好的教程,http://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/

如果您不想再次构建图表,可以按照本教程https://blog.metaflow.fr/tensorflow-how-to-freeze-a-model-and-serve-it-with-a-python-api-d4f3596b3adc

进行操作