L'API TensorFlow r1.0 C++ est livrée avec Session
y ClientSession
classes. Certains des exemples livrés avec TensorFlow utilisent ClientSession
et d'autres utilisent Session
. Ces deux types de sessions utilisent-ils le même mécanisme sous-jacent ou l'un d'entre eux est-il préféré à l'autre ? La syntaxe pour les utiliser est un peu différente, mais à part cela, y a-t-il des différences de comportement ?
Réponse
Trop de publicités?Dans l'API C++ de TensorFlow, la fonction tensorflow::Session
est une interface de bas niveau qui traite les données sérialisées des GraphDef
et fournit une interface basée sur des chaînes de caractères pour l'exécution des sous-graphes.
En revanche, le tensorflow::ClientSession
est de plus haut niveau et s'intègre à la nouvelle API C++ pour la construction des graphes TensorFlow, de la même manière que l'API Python tf.Graph
y tf.Session
les classes le font.
Par conséquent, vous voudrez probablement utiliser un tensorflow::ClientSession
si vous construisez le graphe avec l'API C++, mais l'option tensorflow::Session
est plus facile à utiliser si vous disposez déjà d'un fichier sérialisé GraphDef
(représentant par exemple un modèle pré-entraîné) et souhaite simplement effectuer une inférence sur ce modèle.