Preproceso y posproceso
Puede cargar personalizaciones para realizar operaciones antes y después de cada operación de inferencia sin intervención manual.
- Plantilla custom.py
- Archivo requirements.txt opcional
- Despliegue de un modelo con preproceso, postproceso o ambos
Plantilla custom.py
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.
custom.py en el directorio de nivel más alto del archivo .zip.El archivo .zip también puede contener otros archivos, como archivos Python adicionales, scripts de shell e imágenes. 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: esta función, en caso de definirse, debe encontrarse en
CustomInference. Se llama a esta función antes de que se ejecute la inferencia en la imagen. - onPostProcessing: esta función, en caso de definirse, debe encontrarse 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 desplegar un modelo que utilice un proceso adicional, cargue el archivo .zip personalizado y, a continuación, especifíquelo en el despliegue.
- Vaya a la página Artefactos personalizados y cargue el archivo .zip 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.