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
, 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 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:
- Use seu modelo Tensorflow com Python
- Use seu modelo ONNX com o Windows Machine Learning
- Veja o exemplo do modelo CoreML em um aplicativo iOS para classificação de imagens em tempo real com o Swift.
- Veja o exemplo do modelo Tensorflow em um aplicativo Android para classificação de imagens em tempo real no Android.
- Consulte o exemplo de modelo CoreML com Xamarin para classificação de imagens em tempo real em um aplicativo Xamarin para iOS.
- Veja o exemplo de como usar o modelo exportado (VAIDK/OpenVino)