Pour les derniers résultats de référence, veuillez consulter : https://github.com/AI-performance/embedded-ai.bench/releases
Compilation en un clic : extrayez le code du framework et compilez la bibliothèque ;
Conversion en un clic : extrayez le modèle original, compilez l'outil de conversion et convertissez le modèle ;
Mesure de la vitesse en un clic : tirez le modèle de cadre et mesurez la vitesse. Extrayez le modèle de framework. Le modèle de framework est stocké dans différents entrepôts de code. Le processus de test de vitesse terminera automatiquement l'extraction.
# tnncd ./tnn ./build_tnn_android.sh # suivez et lisez `./tnn/build_tnn_android.sh` si la construction a échouécd -# mnncd ./mnn ./build_mnn_android.sh # suivez et lisez `./mnn/build_mnn_android.sh` si la construction a échoué cd -# ncnncd ./ncnn ./build_ncnn_android.sh # suivez et lisez `./ncnn/build_ncnn_android.sh` si la construction a échoué cd -# tflitecd ./tflite ./build_tflite_android.sh # suivez et lisez `./tflite/build_tflite_android.sh` si la construction a échoué cd -# benchpython bench.py# si l'exécution est correcte :# ===> éditez ./core/global_config.py# === > modifier la valeur de `GPU_REPEATS=1000`, `CPU_REPEATS=100`, `WARMUP=20`, `ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python bench.py# voir le résultat du benchmark ci-dessous# ./tnn/*.csv# ./mnn/*. csv# ./ncnn/*.csv
Les modèles actuellement pris en charge sont limités, voir : modèles tnn, modèles mnn, modèles ncnn, modèles tflite.
démonstration des résultats du banc mnn
Démo des résultats du banc ncnn
démonstration des résultats du banc tnn
Démo des résultats du banc tflite
La figure suivante décrit l'architecture de ce projet :
class Engine : créez une instance de chaque framework par engine_config
, chargez les modèles, compilez la bibliothèque du moteur (TODO : à intégrer dans le script py) et exécutez les résultats du banc ;
BenchSum(TODO) : résume les résultats du banc de chaque instance du moteur ;
dépôt de modèles communs (TODO) : un référentiel qui stocke les modèles originaux publics. Comme Caffe, les modèles classiques du framework TensorFlow (MobileNetV1/V2, etc.).
Entrepôt de modèles indépendant pour chaque moteur, tel que les modèles tnn. Contient le modèle tnn converti à partir de l'entrepôt de modèles public, le script de compilation en un clic (TODO) du convertisseur de modèle, le script de conversion en un clic (TODO) de la conversion de modèle et le script d'actualisation en un clic du version du modèle vers README ;
L'entrepôt de modèles indépendant de chaque moteur est mis à jour indépendamment et régulièrement (TODO) ;
Pendant l'exécution, chaque instance Engine extraira des modèles de son propre entrepôt de modèles indépendant pour les préparer au banc d'essai.
Il est interdit aux sujets autres que l'organisation open source AI-Performance de publier [publiquement] [les résultats de référence basés sur ce projet]. S'ils sont publiés publiquement, cela sera considéré comme une infraction et AI-Performance a le droit d'engager sa responsabilité légale.
L'organisation open source AI-Performance prend la neutralité, l'équité, l'impartialité et l'ouverture comme principes organisationnels et s'engage à créer et à formuler des normes de référence dans le domaine de l'IA.
Habituellement, le « Mode développeur » n'est pas activé. Après avoir confirmé qu'il est activé, il est toujours introuvable. Il peut généralement être résolu en suivant la séquence suivante :
Le paramètre de connexion USB passe de « Chargement uniquement » à « Transférer des fichiers » ;
Changez l'interface USB (peut-être la tension) ;
Ajoutez l'ID du fournisseur à ~/.android/adb_usb.ini, puis adb kill-server, puis adb start-server ;
Redémarrez le téléphone ;
Redémarrez l'ordinateur ;
Changez le câble de données (j'ai trouvé que cela s'était déjà produit) ;
Le lecteur de CD Hisuite des téléphones mobiles Huawei occupera adb. Éjectez le lecteur ;
Flashez le téléphone.
Pour soumettre du code pour la première fois, vous devez exécuter la commande suivante pour installer le hook. Après une installation réussie, chaque fois que git commit
est exécuté, les éléments de vérification définis dans .pre-commit-config.yaml
seront automatiquement vérifiés. Par exemple, la vérification du format actuel concerne le code Python.
# La première exécution du hook peut être lente avant la validation # S'il est introuvable, vous devez d'abord l'installer avant la validationpip install pre-commit # Si vous souhaitez désinstaller, exécutez la désinstallation avant la validation
Si vous ne trouvez pas python3.8, vous pouvez installer minconda3 et utiliser la commande suivante :
# Installez automatiquement miniconda3 et écrivez la variable d'environnement de l'utilisateur actuel.github/workflows/pre-commit-job.sh# Avant de soumettre le code, créez un environnement nommé dev_env_py à titre d'exemple. Si vous le rencontrez, choisissez yconda create -n dev_env_py python. = 3.8# Activer l'environnement nouvellement créé conda activate dev_env_py# Réinstaller l'installation pré-commitpre-commit
Si CI se bloque, vérifiez le journal spécifique de Github Action pour voir si cela est dû à un délai d'attente tel que
git clone
Warehouse. À ce stade, vous pouvezRe-run this jobs
.
.github/workflows/unit-test-job.sh