Para obter os resultados de benchmark mais recentes, consulte: https://github.com/AI-performance/embedded-ai.bench/releases
Compilação com um clique: extraia o código da estrutura e compile a biblioteca;
Conversão com um clique: extraia o modelo original, compile a ferramenta de conversão e converta o modelo;
Medição de velocidade com um clique: puxe o modelo da estrutura e meça a velocidade. Extraia o modelo da estrutura O modelo da estrutura é armazenado em diferentes armazéns de código. O processo de teste de velocidade concluirá automaticamente o pull.
# tnncd ./tnn ./build_tnn_android.sh # siga e leia `./tnn/build_tnn_android.sh` se a compilação falharcd -# mnncd ./mnn ./build_mnn_android.sh # siga e leia `./mnn/build_mnn_android.sh` se a compilação falharcd -# ncnncd ./ncnn ./build_ncnn_android.sh # siga e leia `./ncnn/build_ncnn_android.sh` se a compilação falhar cd -# tflitecd ./tflite ./build_tflite_android.sh # siga e leia `./tflite/build_tflite_android.sh` se a compilação falharcd -# benchpython bench.py# se a execução estiver correta:# ===> edit ./core/global_config.py# === > edite o valor de `GPU_REPEATS=1000`, `CPU_REPEATS=100`, `WARMUP=20`, `ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python bench.py# veja o resultado do benchmark abaixo# ./tnn/*.csv# ./mnn/*. csv#./ncnn/*.csv
Os modelos atualmente suportados são limitados, consulte: modelos tnn, modelos mnn, modelos ncnn, modelos tflite.
demonstração de resultado do banco mnn
demonstração de resultados de bancada ncnn
demonstração de resultado do banco tnn
demonstração de resultado do banco tflite
A figura a seguir descreve a arquitetura deste projeto:
class Engine: Crie uma instância de cada framework por engine_config
, carregue modelos, compile a lib do mecanismo (TODO: para ser integrado ao script py) e execute os resultados do banco;
BenchSum(TODO): Resume os resultados do Bench de cada instância do Engine;
repositório de modelo comum (TODO): um repositório que armazena modelos originais públicos. Como Caffe, modelos clássicos do framework TensorFlow (MobileNetV1/V2, etc.).
Armazém de modelos independentes para cada motor, como modelos tnn. Contém o modelo tnn convertido do armazém de modelo público público, o script de compilação de um clique (TODO) do conversor de modelo, o script de conversão de um clique (TODO) da conversão do modelo e o script para atualização de um clique do versão do modelo para README;
O armazém de modelos independentes de cada motor é atualizado de forma independente e regular (TODO);
Durante a execução, cada instância do Engine extrairá modelos de seu próprio armazém de modelos independente para se preparar para a bancada.
Outros sujeitos que não a organização de código aberto AI-Performance estão proibidos de publicar [publicamente] [resultados de referência baseados neste projeto]. Se publicados publicamente, isso será considerado uma violação, e a AI-Performance tem o direito de processar responsabilidade legal.
A organização de código aberto AI-Performance considera a neutralidade, a justiça, a imparcialidade e a abertura como seus princípios organizacionais e está comprometida em criar e formular padrões de referência no campo da IA.
Normalmente, o "Modo de desenvolvedor" não está ativado. Depois de confirmar que está ativado, ele ainda não pode ser encontrado. Geralmente, pode ser resolvido seguindo a seguinte sequência:
A configuração da conexão USB foi alterada de “Somente carregamento” para “Transferir arquivos”;
Mude a interface USB (talvez voltagem);
Adicione o ID do fornecedor a ~/.android/adb_usb.ini e depois adb kill-server e depois adb start-server;
Reinicie o telefone;
Reinicie o computador;
Troque o cabo de dados (descobri que isso já aconteceu antes);
A unidade de CD Hisuite dos celulares Huawei ocupará adb. Ejete a unidade;
Pisque o telefone.
Para enviar o código pela primeira vez, você precisa executar o seguinte comando para instalar o gancho. Após a instalação bem-sucedida, cada vez que git commit
for executado, os itens de verificação definidos em .pre-commit-config.yaml
serão verificados automaticamente. Por exemplo, a verificação de formato atual é para código Python.
# A primeira execução do gancho pode ser lenta pré-commit install # Se não puder ser encontrado, você precisa instalá-lo primeiro pre-commitpip install pre-commit # Se você deseja desinstalar, execute pre-commit unlock
Se você não conseguir encontrar o python3.8, poderá instalar o minconda3 e usar o seguinte comando:
# Instale automaticamente o miniconda3 e grave a variável de ambiente do usuário atual.github/workflows/pre-commit-job.sh# Antes de enviar o código, crie um ambiente chamado dev_env_py como exemplo. Se você encontrá-lo, escolha yconda create -n dev_env_py python. = 3.8# Ative o ambiente recém-criado conda activate dev_env_py# Reinstale pre-commitpre-commit install
Se o CI travar, verifique o log específico da ação do Github para ver se é devido ao tempo limite, como
git clone
warehouse. Neste momento, você podeRe-run this jobs
.
.github/workflows/unit-test-job.sh