Vous pouvez tester le comportement sur l'écran des détails du déploiement en déployant le modèle en ligne dans l'espace de déploiement Cloud Pak for Data (CP4D). Comme méthode de spécification des exemples de données d'entrée à utiliser pour l'exécution du test, spécifiez dans le format de formulaire suivant et
Il peut être spécifié au format JSON.
Pour utiliser le format de formulaire, vous devez créer le modèle avec un schéma d'entrée. Les modèles créés avec Modeler Flow (SPSS) semblent avoir un schéma d'entrée automatiquement, mais les modèles créés avec Python doivent spécifier le schéma d'entrée comme méta-information lors de l'enregistrement avec le client WML.
Le code suivant enregistre le modèle scikit-learn créé à l'aide du client WML dans l'espace de déploiement. Pour savoir comment utiliser le client WML, reportez-vous à cet article.
Le format de formulaire ne nécessite qu'un schéma d'entrée, mais il a également un schéma de sortie.
Pour les modèles
meta_props={
client.repository.ModelMetaNames.NAME: "sample_iris_model",
client.repository.ModelMetaNames.RUNTIME_UID: "scikit-learn_0.22-py3.6",
client.repository.ModelMetaNames.TYPE: "scikit-learn_0.22",
client.repository.ModelMetaNames.INPUT_DATA_SCHEMA: [{
"id":"input",
"type":"list",
"fields":[
{'name': 'sepal length (cm)', 'type': 'double'},
{'name': 'sepal width (cm)', 'type': 'double'},
{'name': 'petal length (cm)', 'type': 'double'},
{'name': 'petal width (cm)', 'type': 'double'}
]
}],
client.repository.ModelMetaNames.OUTPUT_DATA_SCHEMA: {
"id":"output",
"fields": [
{'name': 'iris_type', 'type': 'string','metadata': {'modeling_role': 'prediction'}}
]
}
}
model_artifact = client.repository.store_model(model, meta_props=meta_props, training_data=X, training_target=y)
model_id = model_artifact['metadata']['guid']
une fonction(function)dans le cas de
meta_props = {
client.repository.FunctionMetaNames.NAME: 'sample_iris_scoring_func',
client.repository.FunctionMetaNames.RUNTIME_UID: "ai-function_0.1-py3.6",
client.repository.FunctionMetaNames.SPACE_UID: space_id,
client.repository.FunctionMetaNames.INPUT_DATA_SCHEMAS: [{
"id":"input",
"fields": [
{"metadata": {}, "type": "double", "name": "sepal length (cm)", "nullable": False},
{"metadata": {}, "type": "double", "name": "sepal width (cm)", "nullable": False},
{"metadata": {}, "type": "double", "name": "petal length (cm)", "nullable": False},
{"metadata": {}, "type": "double", "name": "petal width (cm)", "nullable": False}
]
}],
client.repository.FunctionMetaNames.OUTPUT_DATA_SCHEMAS: [{
"id":"output",
"fields": [
{"metadata": {'modeling_role': 'prediction'}, "type": "string", "name": "iris_type", "nullable": False}
]
}]
}
function_details = client.repository.store_function(meta_props=meta_props, function=iris_scoring)
function_id = function_details['metadata']['guid']
À proprement parler, il s'agit d'un changement par rapport à la version v1.0.95 du client WML et non à la version CP4D. CP4D v3.0.1 inclut le client WML v1.0.95 par défaut.
Le changement est que le schéma d'entrée du modèle est désormais spécifié comme type de liste au lieu d'un type dict. L'exemple de code ci-dessus spécifie INPUT_DATA_SCHEMA comme type de liste. Ce changement semble correspondre à plusieurs tables de données d'entrée, mais comme il a été spécifié comme type de dict avant la v1.0.95, même si vous spécifiez un type de dict dans la v1.0.99 ou une version ultérieure pour la compatibilité descendante Il a été corrigé afin qu'aucune erreur ne se produise.
De plus, lorsque je l'ai essayé, une erreur s'est produite même si je l'ai spécifié comme type de liste dans la v1.0.95. (Ceci demande avec ceci)
Cela fonctionne bien avec la v1.0.103, nous vous recommandons donc de mettre à niveau avec
pip install -U watson-machine-learning-client-V4 '' avant de l'utiliser.
Recommended Posts