从实验框架对保存的TensorFlow模型的预测
我已经通过实验框架成功地训练和验证了我的TensorFlow模型。我现在对如何从保存的模型中预测新样本有点迷茫。我的实验代码与前一个单元格中定义的特征列类似:从实验框架对保存的TensorFlow模型的预测,tensorflow,Tensorflow,我已经通过实验框架成功地训练和验证了我的TensorFlow模型。我现在对如何从保存的模型中预测新样本有点迷茫。我的实验代码与前一个单元格中定义的特征列类似: def experiment_fn(output_dir): return tflearn.Experiment( tflearn.DNNClassifier(feature_columns=feature_cols, hidden_units=[30,
def experiment_fn(output_dir):
return tflearn.Experiment(
tflearn.DNNClassifier(feature_columns=feature_cols,
hidden_units=[30, 2],
n_classes=2,
model_dir=output_dir),
train_input_fn=get_train(),
eval_input_fn=get_valid(),
eval_metrics = {
"accuracy":
tf.contrib.learn.MetricSpec(
metric_fn=tf.contrib.metrics.streaming_accuracy,
prediction_key=tf.contrib.learn.PredictionKey.CLASSES),
"precision":
tf.contrib.learn.MetricSpec(
metric_fn=tf.contrib.metrics.streaming_precision,
prediction_key=tf.contrib.learn.PredictionKey.CLASSES),
"recall":
tf.contrib.learn.MetricSpec(
metric_fn=tf.contrib.metrics.streaming_recall,
prediction_key=tf.contrib.learn.PredictionKey.CLASSES)
}
)
learn_runner.run(experiment_fn, 'model_trained')
在保存和恢复模型时,我认为我可以在DNNClassifier上检索预测方法,如下所示:
op_to_restore = graph.get_tensor_by_name("predict:0")
然后使用新样本构建提要并运行:
print sess.run(op_to_restore,feed_dict)
然而,在成功恢复模型后,TensorFlow抱怨无法找到“预测”操作
这里的任何帮助都将不胜感激。谢谢 如果您在
learn\u runner
中设置了schedule='train'
,它将返回一个估计器。对于schedule='train\u和\u evaluate
它需要一个,或者您可以通过传递与实验相同的模型目录,从最后一个检查点重新构造估计器。谢谢!使用schedule='train'很好。我可以根据我的测试数据进行预测。但是,您对将预测映射回我原始数据中的“关键”列有什么建议吗?在本例中,它表示原始结果的行号。这只是使用估计器的predict()
?我要避免在输入\u fn
中乱序,那么预测应该与输入的顺序相同。谢谢。是的,看起来这是可行的。我可能有一个解决这个问题的方法,我在最近写的一篇博文的末尾记录了这个方法:如果你在learn\u runner
中设置schedule='train'
,它将返回一个估计器。对于schedule='train\u和\u evaluate
它需要一个,或者您可以通过传递与实验相同的模型目录,从最后一个检查点重新构造估计器。谢谢!使用schedule='train'很好。我可以根据我的测试数据进行预测。但是,您对将预测映射回我原始数据中的“关键”列有什么建议吗?在本例中,它表示原始结果的行号。这只是使用估计器的predict()
?我要避免在输入\u fn
中乱序,那么预测应该与输入的顺序相同。谢谢。是的,看起来这是可行的。我可能有一个解决这个问题的方法,我在最近写的一篇博文的末尾记录了这个方法: