Je fais un clustering K-means en utilisant tensorflow.contrib.learn.KMeansClustering.Exporter un modèle KMeans en utilisant export_savedmodel pour le déployer sur ml-engine
Je peux l'utiliser comme modèle par défaut pour prédire le local mais comme je veux utiliser la prédiction en ligne du moteur de recherche, je dois l'exporter vers un format export_savedmodel.
J'ai beaucoup Google place mais étant donné que la classe k-moyennes n'a pas besoin de colonnes de fonctionnalités, donc je ne sais pas comment construire le serving_input_fn correct pour export_savedmodel
Voici mon code
# Generate input_fn
def gen_input(data):
return tf.constant(data.as_matrix(), tf.float32, data.shape), None
# Declare dataset + export model path
TRAIN = 'train.csv'
MODEL = 'model'
# Read dataset
body = pd.read_csv(
file_io.FileIO(TRAIN, mode='r'),
delimiter=',',
header=None,
engine='python'
)
# Declare K-Means
km = KMeansClustering(
num_clusters=2,
model_dir=MODEL,
relative_tolerance=0.1
)
est = km.fit(input_fn=lambda: gen_input(body))
# This place is where I stuck
fcols = [tf.contrib.layers.real_valued_column('x', dimension=5)]
fspec = tf.contrib.layers.create_feature_spec_for_parsing(fcols)
serving_input_fn = tf.contrib.learn.python.learn.\
utils.input_fn_utils.build_parsing_serving_input_fn(fspec)
est.export_savedmodel(MODEL, serving_input_fn)
Voici mon jouet train.csv
1,2,3,4,5
2,3,4,5,6
3,4,5,6,7
5,4,3,2,1
7,6,5,4,3
8,7,6,5,4
modèle exporté ont le format de saved_model.pb avec ses variables dossier
Déploiement du modèle de ml moteur a réussi, mais quand même avec la prédiction train.csv j'ai eu l'erreur suivante
{"error": "Prediction failed: Exception during model execution: AbortionError(code=StatusCode.INVALID_ARGUMENT, details=\"Name: <unknown>, Feature: x (data type: float) is required but could not be found.\n\t [[Node: ParseExample/ParseExample = ParseExample[Ndense=1, Nsparse=0, Tdense=[DT_FLOAT], _output_shapes=-1,5, dense_shapes=5, sparse_types=[], _device=\"/job:localhost/replica:0/task:0/cpu:0\"](_arg_input_example_tensor_0_0, ParseExample/ParseExample/names, ParseExample/ParseExample/dense_keys_0, ParseExample/Const)]]\")"}
J'ai lutté avec cela pour le mois alors que tous les documents que je trouve sont pour pur API
Je suis impatient de vos conseils
Merci à l'avance
Merci beaucoup, cela a fonctionné: D –