Exportación de un modelo mediante programación
Todas las opciones de exportación disponibles en el sitio web de Custom Vision también están disponibles mediante programación a través de las bibliotecas cliente. Es posible que quiera usar bibliotecas cliente para poder automatizar completamente el proceso de volver a entrenar y actualizar la iteración del modelo que se usa en un dispositivo local.
En esta guía se muestra cómo exportar el modelo a un archivo ONNX con el SDK de Python.
Creación de un cliente de entrenamiento
Si desea exportar una iteración del modelo, debe tener un objeto CustomVisionTrainingClient. Cree variables para las claves y el punto de conexión de Azure de los recursos de entrenamiento de Custom Vision y úselas para crear el objeto de cliente.
ENDPOINT = "PASTE_YOUR_CUSTOM_VISION_TRAINING_ENDPOINT_HERE"
training_key = "PASTE_YOUR_CUSTOM_VISION_TRAINING_KEY_HERE"
credentials = ApiKeyCredentials(in_headers={"Training-key": training_key})
trainer = CustomVisionTrainingClient(ENDPOINT, credentials)
Importante
Cuando termine, recuerde quitar las claves del código y nunca hacerlas públicas. En el caso de producción, considere la posibilidad de usar alguna forma segura de almacenar las credenciales, y acceder a ellas. Para más información, consulte el artículo sobre seguridad de servicios de Azure AI.
Llamada al método de exportación
Llame al método export_iteration.
- Proporcione el identificador del proyecto y el identificador de iteración del modelo que desea exportar.
- El parámetro platform especifica la plataforma a la que se realizará la exportación. Los valores permitidos son
CoreML
,TensorFlow
,DockerFile
,ONNX
,VAIDK
yOpenVino
. - El parámetro flavor especifica el formato del modelo exportado. Los valores permitidos son:
Linux
,Windows
,ONNX10
,ONNX12
,ARM
,TensorFlowNormal
yTensorFlowLite
. - El parámetro raw le ofrece la opción de recuperar la respuesta JSON sin formato junto con la respuesta del modelo de objetos.
project_id = "PASTE_YOUR_PROJECT_ID"
iteration_id = "PASTE_YOUR_ITERATION_ID"
platform = "ONNX"
flavor = "ONNX10"
export = trainer.export_iteration(project_id, iteration_id, platform, flavor, raw=False)
Para más información, consulte el método export_iteration .
Importante
Si ya ha exportado una iteración determinada, no puede volver a llamar al método export_iteration. En su lugar, vaya directamente a la llamada al método get_exports para obtener un vínculo al modelo exportado existente.
Descarga del modelo exportado
Luego, llamará al método get_exports para comprobar el estado de la operación de exportación. La operación se ejecuta de manera asincrónica, por lo que debe sondear este método hasta que se complete la operación. Cuando se complete, puede recuperar el URI en el puede descargar la iteración del modelo en el dispositivo.
while (export.status == "Exporting"):
print ("Waiting 10 seconds...")
time.sleep(10)
exports = trainer.get_exports(project_id, iteration_id)
# Locate the export for this iteration and check its status
for e in exports:
if e.platform == export.platform and e.flavor == export.flavor:
export = e
break
print("Export status is: ", export.status)
Para más información, consulte el método get_exports .
A continuación, puede descargar mediante programación el modelo exportado a una ubicación del dispositivo.
if export.status == "Done":
# Success, now we can download it
export_file = requests.get(export.download_uri)
with open("export.zip", "wb") as file:
file.write(export_file.content)
Pasos siguientes
Explore uno de los siguientes artículos o ejemplos para integrar el modelo exportado en una aplicación:
- Uso del modelo Tensorflow con Python
- Uso del modelo ONNX con Machine Learning de Windows
- Consulte el ejemplo del modelo CoreML en una aplicación de iOS para la clasificación de imágenes en tiempo real con Swift
- Consulte el ejemplo del modelo Tensorflow en una aplicación de Android para la clasificación de imágenes en tiempo real en Android.
- Consulte el ejemplo del modelo CoreML con Xamarin para la clasificación de imágenes en tiempo real en una aplicación Xamarin iOS.
- Consulte el ejemplo para ver cómo usar el modelo exportado (VAIDK/OpenVino)