2017-08-17 55 views
0

我想保存一個由contrib.learn.Classifier生成的模型,但我不知道如何去引用它的內部節點。這是我在香草Tensorflow模型(y = W * x + b)中使用的代碼,並且它工作得很好。我們如何保存一個由contrib.learn.Classifier製作的Tensorflow模型?

W = tf.Variable([], dtype=tf.float32) 
b = tf.Variable([], dtype=tf.float32) 
x = tf.placeholder(tf.float32, name="x") 
my_model = tf.add(W * x, b, name="model") 
... # training 
builder = tf.saved_model.builder.SavedModelBuilder("/tmp/saved_model") 
builder.add_meta_graph_and_variables(sess, ["predict_tag"], signature_def_map= { 
      "model": tf.saved_model.signature_def_utils.predict_signature_def(
       inputs= {"x": x}, 
       outputs= {"model": my_model}) 
      }) 
builder.save() 

現在,如果我用contrib.learn.Classifier

estimator = tf.contrib.learn.LinearClassifier(feature_columns=feature_columns) 
estimator.fit(input_fn=train_input_fn, steps=1000) 

我如何使用builder上述同樣,對於後者estimator?請注意,我不想做tf.train.Saver().save(sess, "/tmp/model");使用saved_model.builder是一個要求。謝謝!

回答

0

您可以使用出口推理圖作爲SavedModel到給定的目錄估計的export_savedmodel功能,tf.contrib.learn.LinearClassifier

from tensorflow.contrib.layers.python.layers import feature_column as feature_column_lib 
from tensorflow.contrib.learn.python.learn.utils.input_fn_utils import build_parsing_serving_input_fn 

# create feature specs from feature columns 
feature_spec = feature_column_lib.create_feature_spec_for_parsing(
    feature_columns) 

# create the input function 
serving_input_fn = build_parsing_serving_input_fn(feature_spec) 

# finally save the model 
estimator.export_savedmodel('/path/to/save/my_model/', serving_input_fn=input_receiver_fn) 
相關問題