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
eOpenVino
. - O parâmetro flavor especifica o formato do modelo exportado: os valores permitidos são
Linux
,Windows
,ONNX10
,ONNX12
,ARM
,TensorFlowNormal
eTensorFlowLite
. - 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:
- Usar seu modelo do TensorFlow com Python
- Usar seu modelo do ONNX com o Windows Machine Learning
- Confira o exemplo do modelo do CoreML em um aplicativo iOS para classificação de imagem em tempo real com o Swift.
- Confira o exemplo do modelo do TensorFlow em um aplicativo Android para classificação de imagem em tempo real no Android.
- Confira o exemplo de modelo do CoreML com Xamarin para classificação de imagem em tempo real em um aplicativo Xamarin iOS.
- Consulte a amostra de como usar o modelo exportado (VAIDK/OpenVino)