web-dev-qa-db-fra.com

Exécutez Tensorflow avec le moteur d'inférence NVIDIA TensorRT

J'aimerais utiliser NVIDIA TensorRT pour exécuter mes modèles Tensorflow. Actuellement, TensorRT prend en charge les fichiers de descripteur de réseau Caffe prototxt.

Je n'ai pas pu trouver le code source pour convertir les modèles Tensorflow en modèles Caffe. Existe-t-il des solutions de contournement?

8
Evi

TensorRT 3.0 prend en charge l’importation/la conversion des graphiques TensorFlow via son format UFF (format de cadre universel). Certaines implémentations de couche manquent et nécessitent des implémentations personnalisées via l'interface IPlugin.

Les versions précédentes ne prenaient pas en charge l’importation native des modèles/points de contrôle TensorFlow.

Vous pouvez également exporter la description des couches/réseau dans votre propre format intermédiaire (tel qu'un fichier texte), puis utiliser l'API TensorRT C++ pour construire le graphe par inférence. Vous devez exporter les poids/biais de convolution séparément. Assurez-vous de faire attention au format du poids - TensorFlow utilise NHWC tandis que TensorRT utilise NCHW. Et pour les poids, TF utilise RSCK ([filter_height, filter_width, input_depth, output_depth]) et TensorRT utilise KCRS.

Voir ce document pour une discussion approfondie sur les formats de tenseurs: https://arxiv.org/abs/1410.0759

Ce lien contient également des informations utiles: https://www.tensorflow.org/versions/master/extend/tool_developers/

12
Andrei Pokrovsky

Aucune solution de contournement n'est nécessaire à l'heure actuelle, car le nouveau TensorRT 3 prend désormais en charge TensorFlow.

2
Nikos