Exportar um modelo de maneira programática

Todas as opções de exportação disponíveis no site da Visão Personalizada também estão disponíveis programaticamente por meio das bibliotecas de clientes. Talvez você queira usar as bibliotecas de clientes para automatizar totalmente o processo de readaptação 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 SDK do Python.

Criar um cliente de treinamento

Você precisa ter um objeto CustomVisionTrainingClient para exportar uma iteração de modelo. Crie variáveis para seu ponto de extremidade e suas chaves do Azure dos recursos de treinamento da Visão Personalizada 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 código quando terminar e nunca poste-as publicamente. Para produção, considere o uso de uma maneira segura de armazenar e acessar suas credenciais. Para obter mais informações, confira o artigo sobre 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, TensorFlowNormal e TensorFlowLite.
  • O parâmetro raw oferece a opção de recuperar a resposta bruta do JSON 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, vá para a chamada de método get_exports para obter um link para o modelo exportado existente.

Baixar 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 maneira 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 em que você poderá baixar a iteração do modelo em 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, confira o método get_exports .

Em seguida, você pode baixar programaticamente o modelo exportado para um local em 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óximas etapas

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