ConcreteFunction

classe publique ConcreteFunction

Un graphique qui peut être invoqué comme une fonction unique, avec une signature d'entrée et de sortie.

Une fonction peut également invoquer un tf.function défini dans un SavedModelBundle .

ConcreteFunction myFunction = savedModelBundle.function("myFunctionSignatureName");
 Map<String, Tensor> outputTensorMap = myFunction.call(inputTensorMap);
 

Méthodes publiques

Tenseur
appeler ( Tenseur tenseur)
Appelle une fonction avec une seule entrée et sortie.
Carte<String, Tensor >
appel (Map<String, Tensor > arguments)
Appelle une fonction.
vide
fermer ()
Fonction Béton statique
créer ( Signature signature, Session session)
Créez une fonction à partir d'une signature et d'une session graphique valide.
Fonction Béton statique
créer (Fonction<Ops, Signature > functionBuilder)
Crée une fonction en construisant un nouveau graphique.
Fonction Béton statique
créer ( signature signature , graphique graphique)
Créez une fonction à partir d'une signature et d'un graphique existant.
Graphique
graphique ()
Renvoie le graphique de cette fonction
vide
enregistrer (String exportDir)
Exportez cette fonction en tant que modèle enregistré.
Session
session ()
Renvoie la session utilisée pour exécuter le graphique lors de l'appel de cette fonction

En général, un utilisateur n'a pas besoin de gérer directement la session d'une fonction et s'appuie plutôt sur call(Map) pour exécuter le graphique.

Signature
signature ()
Renvoie la signature de cette fonction
Chaîne

Méthodes héritées

Méthodes publiques

appel Tensor public ( Tensor tensor)

Appelle une fonction avec une seule entrée et sortie.

L'appelant est responsable de la fermeture de tous les Tensors.

Paramètres
tenseur tenseur d'entrée
Retours
  • tenseur de sortie
Jetés
IllegalArgumentException s'il y a plusieurs paramètres d'entrée ou de sortie définis dans la fonction

public Map<String, Tensor > appel (Map<String, Tensor > arguments)

Appelle une fonction.

L'appelant est responsable de la fermeture de tous les Tensors.

Paramètres
arguments liste des tenseurs à transmettre en entrée à la fonction, mappés par leur nom de signature
Retours
  • tenseurs de sortie résultant de l'exécution de la fonction, mappés par leur nom de signature
Jetés
IllegalArgumentException

public vide fermer ()

public static ConcreteFunction create ( Signature signature, Session session)

Créez une fonction à partir d'une signature et d'une session graphique valide.

La fonction ne sera propriétaire ni de la session ni de son graphique, ce qui signifie que leur durée de vie peut s'étendre au-delà de la portée de la fonction. Il n’est donc pas nécessaire de fermer la fonction après son utilisation. Par exemple:

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (Session s = new Session(g)) {
     // Auto-closing the function just as an example but this is not required since it has
     // no effect
     try (ConcreteFunction f = ConcreteFunction.create(signature, s);
         TFloat32 t = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     
     // Session s is still valid at this point
   }
   // Graph g is still valid at this point
 }
 }

Paramètres
signature signature de la fonction à créer
session une session valide vers un graphique initialisé
Retours
  • une nouvelle fonction

public static ConcreteFunction créer (Function<Ops, Signature > functionBuilder)

Crée une fonction en construisant un nouveau graphique.

Le functionBuilder doit initialiser le graphe de fonctions à partir de l'instance ERROR(/Ops) fournie et renvoyer une signature valide qui sera utilisée pour alimenter les tenseurs d'entrée et récupérer les tenseurs de sortie lors de l'exécution.

La fonction sera propriétaire du nouveau graphique et de sa session résultante. Par conséquent, la fonction doit être correctement entourée d'un bloc try-with-resources pour garantir que toutes les ressources natives seront libérées une fois la fonction supprimée. Par exemple:

public class MyModel {

   public static Signature addTwo(Ops tf) {
     Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
     Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
     return Signature.builder("addTwo").input("x", input).output("y", output).build();
   

   public static void main(String args[]) {
     try (ConcreteFunction function = ConcreteFunction.create(MyModel::addTwo);
         TFloat32 x = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     }
   }
 }
 }

Paramètres
fonctionBuilder constructeur de fonctions
Retours
  • la nouvelle fonction

public static ConcreteFunction create ( Signature signature, Graph graph)

Créez une fonction à partir d'une signature et d'un graphique existant.

La fonction conservera la propriété de la session utilisée pour exécuter le graphe mais pas le graphe lui-même, ce qui signifie que la durée de vie de ce dernier peut s'étendre au-delà du cadre de la fonction. Par exemple:

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (ConcreteFunction f = ConcreteFunction.create(signature, g);
       TFloat32 x = TFloat32.scalarOf(2.0f)) {
     assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
   
   // Graph g is still valid at this point
 }
 }

Paramètres
signature signature de la fonction à créer
graphique un graphe valide et initialisé
Retours
  • une nouvelle fonction

graphique graphique public ()

Renvoie le graphique de cette fonction

sauvegarde publique vide (String exportDir)

Exportez cette fonction en tant que modèle enregistré.

Cette méthode est un raccourci pratique équivalent à SavedModel.exporter(exportDir).withFunction(this).export()

Paramètres
exportDir répertoire où exporter le modèle enregistré
Jetés
IOException si le modèle enregistré ou l'état de la variable ne peut pas être écrit sur le disque

séance publique séance ()

Renvoie la session utilisée pour exécuter le graphique lors de l'appel de cette fonction

En général, un utilisateur n'a pas besoin de gérer directement la session d'une fonction et s'appuie plutôt sur call(Map) pour exécuter le graphique. Mais dans certains cas, un accès direct à la session peut être nécessaire, car il offre davantage d'options d'exécution.

Retours
  • la séance de fonction

signature publique signature ()

Renvoie la signature de cette fonction

chaîne publique versString ()