Pré-traitement et post-traitement
Vous pouvez transférer des personnalisations pour effectuer des opérations avant ou après chaque inférence sans intervention manuelle.
- Canevas custom.py
- Fichier requirements.txt facultatif
- Déploiement d'un modèle avec le prétraitement, le post-traitement ou les deux
Canevas custom.py
Utilisez le modèle custom.py pour générer un fichier Python nommé custom.py. Le fichier peut contenir des instructions de prétraitement, de post-traitement ou les deux. La version dépend du type de modèle :
- Python 2 pour les modèles à haute résolution, optimisés pour les anomalies et personnalisés.
- Python 3 pour des modèles R-CNN, GoogLeNet, SSD, YOLO v3, Tiny YOLO v3 et Detectron2 plus rapides.
custom.py dans le répertoire de niveau le plus élevé du fichier .zip.Ce fichier .zip peut contenir d'autres fichiers, comme des fichiers Python supplémentaires, des scripts shell et des images. Si le script de personnalisation requiert des modules Python hormis les modules intégrés dans Python, vous pouvez créer un fichier requirements.txt contenant une liste de modules à installer à l'aide de pip. Le canevas contient les informations suivantes :
- class CustomInference - La seule classe Python dans le fichier. Elle doit être intitulée
CustomInferenceet contenir les appels "pre" et "post". - onPreProcessing - Si cette fonction est définie, elle doit se trouver dans
CustomInference. Elle est appelée avant l'exécution d'une inférence sur l'image. - OnPostProcessing - Si cette fonction est définie, elle doit se trouver dans
CustomInference. Elle est appelée après l'exécution d'une inférence sur l'image.
class CustomInference:
# Callout for inference pre-processing. Will be called before the
# actual inference on the “image”
#
# Input:
# image: Image represented as a NumPy array that inference is to be
# performed on.
#
# params: To be used for additional parameters. This will be
# a listof key/value pairs.
#
# Output:
# image: Return the image represented as a NumPy array that is to
# be used for inference. This array may been manipulated
# in this function, or it may be the same exact NumPy array.
#
def onPreProcessing(self, image, params):
return image
# Callout for the inference post-processing. Will be called
# after the image has been inferred.
#
# Input:
# Image: Image represented as a NumPy array that inference is to be
# performed on.
#
# results: JSON of the inference results. The JSON will be
# dependent on thetype of inference.
#
# params: To be used for additional parameters. This will
# be a list of key/value pairs
#
# Output:
# results: A json object that is a copy of the original
# inference results. However, if the callout
# intends to return additional information, that
# information can bereturnedin the json results
# under the key “user”.
#
def onPostProcessing(self, image, results, params):
return results
Fichier requirements.txt facultatif
L'exemple de fichier suivant montre le contenu d'un fichier requirements.txt :
sseclient==0.0.19
tflearn==0.3.2
keras==2.2.4
Déploiement d'un modèle qui utilise le pré-traitement, le post-traitement ou les deux
Pour déployer un modèle qui utilise un traitement supplémentaire, transférez le fichier .zip personnalisé, puis spécifiez-le dans le déploiement.
- Accédez à la page Artefacts personnalisés et importez le fichier .zip contenant
custom.py. Pour le type d'artefact, sélectionnez Script d'inférence personnalisé. - Accédez au modèle que vous souhaitez déployer, puis cliquez sur Déployer le modèle.
- Activez l'option Déploiement avancé.
- Pour Script d'inférence personnalisé, sélectionnez le script d'inférence que vous souhaitez utiliser, indiquez ce qui doit être fait avec les résultats de l'inférence, puis cliquez sur Déployer.Remarque :
- Les résultats d'inférence peuvent être sauvegardés même si vous ne choisissez pas un script d'inférence personnalisé.
- Les résultats d'inférence pour les vidéos ne sont pas sauvegardés.