广泛深入的Tensorflow:如何馈送CSV文件功能以输入图的张量

时间:2018-08-13 08:10:03

标签: python tensorflow

我尝试了一个使用Tensorflow宽深模型的实验。我遵循https://github.com/tensorflow/models/tree/master/official/wide_deep上的所有说明。

来自模型存储库(adult.data and train.data)的输入数据集相同。我训练了模型并保存了它。 (\tmp\saved_model_dir\147856923目录)。之后,从保存的模型目录中冻结saved_model.pb图。我得到了frozen_graph.pb。现在,我想使用此frozon_graph.pb进行推断。

在代码中,我能够打开图形并能够获得输入和输出张量操作,但是我不确定如何将输入馈入推理,这基本上是一个csv文件,作为feature_dict。

或简而言之,“我想通过使用frozon_graph.pb文件在宽而深的模型中进行推理”。

import os
import sys
import numpy as np
import tensorflow as tf
import argparse

from google.protobuf import text_format
from official.wide_deep import census_dataset


parser = argparse.ArgumentParser()
parser.add_argument('--data_dir', type=str,help='Directory for input ',required=True)
parser.add_argument('--graph', type=str,help='File name for graph',required=True)
args = parser.parse_args()

graph = tf.Graph()
graph_def = tf.GraphDef()
file_ext = os.path.splitext(args.graph)[1]
with open(args.graph, "rb") as f:
  if file_ext == ".pbtxt":
    text_format.Merge(f.read(), graph_def)
  else:
    graph_def.ParseFromString(f.read())

with graph.as_default():
  tf.import_graph_def(graph_def)

for op in graph.get_operations():
  print(op.name)


input_name = "input_example_tensor"
input_tensor = graph.get_tensor_by_name("import/" + input_name + ":0") 
output_name = "head/predictions/logistic"
output_tensor = graph.get_tensor_by_name("import/" + output_name + ":0")
test_file = os.path.join(args.data_dir, census_dataset.EVAL_FILE)
dataset = census_dataset.input_fn(test_file, 1, False, 40)
print(dataset)

with tf.Session(graph=graph) as sess:
    """here I am confused to how pass the feature list"""   
     predict = output_tensor.eval(feed_dict={input_tensor[0]:dataset})
     print("scores on testing data: %".format(predict))

0 个答案:

没有答案