Ceci est une continuation de Accélérer l'apprentissage profond avec le processeur Rasperry Pi 4.
Afin d'accélérer le Deep Learning, il est nécessaire d'examiner quel processus prend combien de temps et de réduire le temps de traitement réel. Par conséquent, premier profil utilisant la fonction de profil d'ONNX Runtime.
Vous trouverez comment activer la fonction de profilage dans le didacticiel officiel ONNX (https://microsoft.github.io/onnxruntime/python/auto_examples/plot_profiling.html "").
sample.py
import onnxruntime
options = onnxruntime.SessionOptions()
options.enable_profiling = True # <-Fonction de profil activée
session = onnxruntime.InferenceSession(path_to_model, options)
[Cible du profil]
prof_file = session.end_profiling()
print(prof_file)
Les résultats du profil sont enregistrés au format JSON. En outre, les résultats de profil peuvent être visualisés avec l'outil de traçage intégré à Chrome. (Entrez ** chrome: // tracing / ** dans l'URL de Chrome pour lancer l'outil.)
Cette fois, prenons un profil dans le cas de l'exécution de la classification d'images avec ** MobileNetV1 depth 1.0 224x224 **. Chaque modèle utilise le modèle avec ONNX Runrime Graph Optimization.
Le processus est le suivant: chargement du modèle, initialisation de session et exécution du modèle. Si vous développez la partie d'exécution du modèle, le processus de convolution, qui est une fusion du processus de normalisation par lots, est exécuté plusieurs fois. (La normalisation par lots doit être gérée indépendamment, mais ONNX Runrime Graph Optimization En conséquence, il est intégré dans le processus de Convolution.)
Le tableau ci-dessous résume les résultats du profil.
article | temps de traitement(ms) | Pourcentage(%) |
---|---|---|
Tout traitement | 157.19 | - |
Convolution | 148.017 | 94.2 |
gemm | 6.053 | 3.9 |
Autre | 3.12 | 1.9 |
Il s'avère que nous devons faire quelque chose concernant le traitement par convolution afin de réduire le temps de traitement global. Je voudrais examiner le type d’approche nécessaire à partir de la prochaine fois.
Recommended Posts