Compartir a través de


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 el punto de conexión de Azure y las claves 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

Recuerde quitar las claves del código cuando termine, y nunca las haga 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 obtener más información, consulte el artículo seguridad de Foundry Tools.

Llamar 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 asincrónicamente, por lo que debería consultar este método hasta que la operación se complete. Cuando se complete, puedes recuperar el URI en el que puedes descargar la iteración del modelo a tu 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)

Explore uno de los siguientes artículos o ejemplos para integrar el modelo exportado en una aplicación: