Pular para o conteúdo principal

PyTorch para TFLite

Este capítulo descreverá como converter e exportar modelos PyTorch para modelos TFLite.

Preparação

Configuração do Ambiente

Assim como na etapa de Training, recomendamos que você faça isso em um ambiente virtual durante a fase de exportação do modelo. No ambiente virtual sscma, certifique-se de que a etapa Installation - Prerequisites - Install Extra Dependencies foi concluída.

dica

Se você já configurou um ambiente virtual, mas não o ativou, pode ativá-lo com o seguinte comando.

conda activate sscma

Modelos e Pesos

Você também precisa preparar o modelo PyTorch e seus pesos antes de exportar o modelo. Para o modelo, você pode encontrá-lo na seção Config, onde já o pré-configuramos. Para os pesos, você pode consultar as etapas a seguir para obter os pesos do modelo.

dica

Exportar o modelo TFLite requer um conjunto de treinamento como conjunto de dados representativo; se ele não for encontrado, o programa irá baixá-lo automaticamente. Entretanto, para alguns conjuntos de dados grandes, isso pode levar muito tempo, portanto, seja paciente.

Exportar Modelo

Para a transformação do modelo (converter e exportar), os comandos relevantes com alguns parâmetros comuns são listados.

python3 tools/export.py \
"<CONFIG_FILE_PATH>" \
"<CHECKPOINT_FILE_PATH>" \
--target tflite

Exemplos de Exportação para TFLite

Aqui estão alguns exemplos de conversão de modelo (precisão int8) para referência.

python3 tools/export.py \
configs/fomo/fomo_mobnetv2_0.35_x8_abl_coco.py \
"$(cat work_dirs/fomo_mobnetv2_0.35_x8_abl_coco/last_checkpoint)" \
--target tflite \
--cfg-options \
data_root='datasets/mask'

Validação do Modelo

Como no processo de exportação do modelo o SSCMA fará algumas otimizações no modelo usando algumas ferramentas, como poda de modelo, destilação, etc., embora tenhamos testado e avaliado os pesos do modelo durante o processo de treinamento, recomendamos que você valide o modelo exportado novamente.

python3 tools/inference.py \
"<CONFIG_FILE_PATH>" \
"<CHECKPOINT_FILE_PATH>" \
--show \
--cfg-options "<CFG_OPTIONS>"
dica

Para mais parâmetros suportados, consulte o código-fonte tools/inference.py ou execute python3 tools/inference.py --help.

Exemplo de Validação de Modelo

Aqui estão alguns exemplos para validar o modelo convertido (precisão int8), somente para referência.

python3 tools/inference.py \
configs/fomo/fomo_mobnetv2_0.35_x8_abl_coco.py \
"$(cat work_dirs/fomo_mobnetv2_0.35_x8_abl_coco/last_checkpoint | sed -e 's/.pth/_int8.tflite/g')" \
--show \
--cfg-options \
data_root='datasets/mask'
Loading Comments...