使用“tf.contrib.predictor”预测来自“tf.estimator.export_savedmodel”的 TF 1.13 的批次
Use `tf.contrib.predictor` to predict on batches from `tf.estimator.export_savedmodel` for TF 1.13
我找到了几个示例来加载我保存的估算器 my_estimator.export_savedmodel(export_dir, export_input_fn)
模型,作为像这样的预测器 predictor = tf.contrib.predictor.from_saved_model(export_dir)
。当我的 tf.train.Example
只有一项时,这非常有用。我怎样才能使它适用于 TF 1.13 的批处理?
model_input= tf.train.Example(features=tf.train.Features(feature={
'browser_name': tf.train.Feature(bytes_list=tf.train.BytesList(value=[b"chrome", b"ie"])),
'version': tf.train.Feature(float_list=tf.train.FloatList(value=[8.0, 11.0]))
})).SerializeToString()
predictor({"inputs":[model_input]})
当每个特征有多个输入时调用失败。
predictor({"inputs":[model_input1, model_input2]})
可行,但这需要将数据手动枚举到多个 tf.train.Example
实例中
这是一个使用 tensorflow 1.13.1 的工作示例:
import tensorflow as tf
import pandas as pd
import numpy as np
prod_export_dir = 'my_model_dir'
data = pd.read_csv('my_data.csv')
predictor = tf.contrib.predictor.from_saved_model(prod_export_dir)
model_input = {}
for k, v in predictor.feed_tensors.items():
model_input[k] = np.array(data[k].tolist(), dtype=v.dtype.as_numpy_dtype)
prediction = predictor(model_input)
我找到了几个示例来加载我保存的估算器 my_estimator.export_savedmodel(export_dir, export_input_fn)
模型,作为像这样的预测器 predictor = tf.contrib.predictor.from_saved_model(export_dir)
。当我的 tf.train.Example
只有一项时,这非常有用。我怎样才能使它适用于 TF 1.13 的批处理?
model_input= tf.train.Example(features=tf.train.Features(feature={
'browser_name': tf.train.Feature(bytes_list=tf.train.BytesList(value=[b"chrome", b"ie"])),
'version': tf.train.Feature(float_list=tf.train.FloatList(value=[8.0, 11.0]))
})).SerializeToString()
predictor({"inputs":[model_input]})
当每个特征有多个输入时调用失败。
predictor({"inputs":[model_input1, model_input2]})
可行,但这需要将数据手动枚举到多个 tf.train.Example
实例中
这是一个使用 tensorflow 1.13.1 的工作示例:
import tensorflow as tf
import pandas as pd
import numpy as np
prod_export_dir = 'my_model_dir'
data = pd.read_csv('my_data.csv')
predictor = tf.contrib.predictor.from_saved_model(prod_export_dir)
model_input = {}
for k, v in predictor.feed_tensors.items():
model_input[k] = np.array(data[k].tolist(), dtype=v.dtype.as_numpy_dtype)
prediction = predictor(model_input)