Exportar um modelo programaticamente

Todas as opções de exportação disponíveis no site da Visão Personalizada também estão disponíveis programaticamente através das bibliotecas do cliente. Você pode querer usar bibliotecas de cliente para poder automatizar totalmente o processo de retreinamento e atualização da iteração de modelo usada em um dispositivo local.

Este guia mostra como exportar seu modelo para um arquivo ONNX com o Python SDK.

Criar um cliente de treinamento

Você precisa ter um objeto CustomVisionTrainingClient para exportar uma iteração de modelo. Crie variáveis para seus recursos de treinamento da Visão Personalizada Ponto de extremidade e chaves do Azure e use-as para criar o objeto 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

Lembre-se de remover as chaves do seu código quando terminar e nunca publicá-las publicamente. Para produção, considere usar uma maneira segura de armazenar e acessar suas credenciais. Para obter mais informações, consulte o artigo de segurança dos serviços de IA do Azure.

Chamar o método de exportação

Chame o método export_iteration .

  • Forneça a ID do projeto, a ID de iteração do modelo que você deseja exportar.
  • O parâmetro platform especifica a plataforma para a qual exportar: os valores permitidos são CoreML, TensorFlow, DockerFile, ONNX, VAIDK, e OpenVino.
  • O parâmetro flavor especifica o formato do modelo exportado: os valores permitidos são Linux, Windows, ONNX10, ONNX12, ARM, TensorFlowNormale TensorFlowLite.
  • O parâmetro raw oferece a opção de recuperar a resposta JSON bruta junto com a resposta do modelo de objeto.
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 obter mais informações, consulte o método export_iteration.

Importante

Se você já tiver exportado uma iteração específica, não poderá chamar o método export_iteration novamente. Em vez disso, pule para a chamada de método get_exports para obter um link para seu modelo exportado existente.

Transferir o modelo exportado

Em seguida, você chamará o método get_exports para verificar o status da operação de exportação. A operação é executada de forma assíncrona, portanto, você deve sondar esse método até que a operação seja concluída. Quando ele for concluído, você poderá recuperar o URI onde poderá baixar a iteração do modelo para seu 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 obter mais informações, consulte o método get_exports.

Em seguida, você pode baixar programaticamente o modelo exportado para um local no seu 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)

Próximos passos

Integre seu modelo exportado em um aplicativo explorando um dos seguintes artigos ou exemplos: