Preproceso y posproceso
Puede cargar personalizaciones para realizar operaciones antes y después de cada operación de inferencia sin intervención manual.
- custom.py Plantilla
- Archivo requirements.txt opcional
- Despliegue de un modelo con preproceso, postproceso o ambos
custom.py Plantilla
Utilice la plantilla custom.py para generar un archivo Python denominado custom.py. El archivo puede contener instrucciones para el preproceso, el postproceso o ambos. La versión depende del tipo de modelo:
- Python 2 para modelos de alta resolución, de anomalía optimizada y personalizados.
- Python 3 para modelos R-CNN, GoogLeNet, SSD, YOLO v3, Tiny YOLO v3 y Detectron2 más rápidos.
Otros archivos, como archivos Python adicionales, scripts de shell e imágenes, también pueden existir en el .zip archivo. Si el script de personalización requiere módulos Python además de los módulos incorporados en Python, puede crear un archivo requirements.txt que contenga una lista de los módulos que se deben instalar mediante pip. La plantilla contiene la información siguiente:
- clase CustomInference
- La única clase Python en el archivo. Debe denominarse
CustomInferencey contiene las llamadas "pre" y "post". - onPreProcessing
- Si se define, esta función debe estar en
CustomInference. Se llama a esta función antes de que se ejecute la inferencia en la imagen. - onPostProcessing
- Si se define, esta función debe estar en
CustomInference. Se llama a esta función después de que se ejecute la inferencia en la imagen.
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
Archivo requirements.txt opcional
En el siguiente archivo de ejemplo, se muestra el contenido de un archivo requirements.txt:
sseclient==0.0.19
tflearn==0.3.2
keras==2.2.4
Despliegue de un modelo que utiliza el preproceso, posproceso o ambos
Para implementar un modelo que utiliza procesamiento adicional, debe cargar el archivo .zip personalizado y, a continuación, especificarlo en la implementación.
- Vaya a la página Artefactos personalizados y cargue el .zip archivo que contiene custom.py. Para el tipo de artefacto, seleccione Script de inferencia personalizado.
- Vaya al modelo que quiera desplegar y pulse Desplegar modelo.
- Active Despliegue avanzado.
- En Script de inferencia personalizado, seleccione el script de inferencia que quiera utilizar, especifique lo que quiere hacer con los resultados de inferencia y pulse Desplegar.Nota:
- Los resultados de inferencia se pueden guardar aunque no elija un script de inferencia personalizado.
- Los resultados de inferencia para los vídeos no se guardan.