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 y OpenVino.
  • El parámetro flavor especifica el formato del modelo exportado. Los valores permitidos son: Linux, Windows, ONNX10, ONNX12, ARM, TensorFlowNormal y TensorFlowLite.
  • 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: