Scope

classe finale publique

Gère les groupes de propriétés associées lors de la création d'opérations Tensorflow, telles qu'un préfixe de nom commun.

Un Scope est un conteneur de propriétés communes appliquées à TensorFlow Ops. Le code utilisateur normal initialise une Scope et la fournit aux classes de création d'opérations. Par exemple:

Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 

Une classe de création d'opérations acquiert une portée et l'utilise pour définir les propriétés des opérations Tensorflow sous-jacentes. Par exemple:

// An operator class that adds a constant.
 public class Constant {
   public static Constant create(Scope scope, ...) {
      scope.graph().opBuilder(
        "Const", scope.makeOpName("Const"))
        .setAttr(...)
        .build()
      ...
   
 }
 }

Hiérarchie de portée :

Un Scope fournit diverses méthodes with() qui créent une nouvelle portée. La nouvelle portée a généralement une propriété modifiée tandis que les autres propriétés sont héritées de la portée parent.

Un exemple utilisant Constant implémenté comme auparavant :

Scope root = new Scope(graph);

 // The linear subscope will generate names like linear/...
 Scope linear = Scope.withSubScope("linear");

 // This op name will be "linear/W"
 Constant.create(linear.withName("W"), ...);

 // This op will be "linear/Const", using the default
 // name provided by Constant
 Constant.create(linear, ...);

 // This op will be "linear/Const_1", using the default
 // name provided by Constant and making it unique within
 // this scope
 Constant.create(linear, ...);
 

Les objets Scope ne sont pas thread-safe.

Constructeurs Publics

Portée (environnement ExecutionEnvironment )
Créez une nouvelle étendue de niveau supérieur.

Méthodes publiques

OpérationBuilder
applyControlDependencies (générateur OperationBuilder )
Ajoute chaque opérande dans controlDependencies en tant qu'entrée de contrôle au générateur fourni.
Environnement d'exécution
env ()
Renvoie l'environnement d'exécution utilisé par cette étendue.
Chaîne
makeOpName (String defaultName)
Créez un nom unique pour un opérateur, en utilisant un nom par défaut fourni si nécessaire.
Portée
withControlDependencies (contrôles Iterable< Operand <?>>)
Renvoie une nouvelle portée dans laquelle les opérations ajoutées auront les dépendances de contrôle fournies.
Portée
withName (String opName)
Renvoie une nouvelle portée qui utilise le nom fourni pour une opération.
Portée
withSubScope (Chaîne childScopeName)
Renvoie une nouvelle portée dans laquelle les opérations ajoutées auront le préfixe de nom fourni.

Méthodes héritées

Constructeurs Publics

Portée publique (environnement ExecutionEnvironment )

Créez une nouvelle étendue de niveau supérieur.

Paramètres
env L’environnement d’exécution utilisé par la portée.

Méthodes publiques

public OperationBuilder applyControlDependencies (générateur OperationBuilder )

Ajoute chaque opérande dans controlDependencies en tant qu'entrée de contrôle au générateur fourni.

Paramètres
constructeur OperationBuilder pour ajouter des entrées de contrôle à

environnement d'exécution public env ()

Renvoie l'environnement d'exécution utilisé par cette étendue.

public String makeOpName (String defaultName)

Créez un nom unique pour un opérateur, en utilisant un nom par défaut fourni si nécessaire.

Ceci est normalement appelé uniquement par les classes de construction d'opérateurs.

Cette méthode génère un nom unique, approprié pour la portée de nom contrôlée par cette instance. Le code du bâtiment typique d'un opérateur pourrait ressembler à

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 

Remarque : si vous fournissez une classe de création d'opérateurs composites (c'est-à-dire une classe qui crée un ensemble d'opérations associées en appelant le code de création d'un autre opérateur), le nom fourni fera office de sous-portée pour tous les opérateurs sous-jacents.

Paramètres
Nom par défaut nom de l’opérateur sous-jacent.
Retours
  • nom unique de l'opérateur.
Jetés
IllegalArgumentException si le nom par défaut n'est pas valide.

Portée publique avec ControlDependencies (contrôles Iterable < Operand <?>>)

Renvoie une nouvelle portée dans laquelle les opérations ajoutées auront les dépendances de contrôle fournies.

Les opérations créées avec cette portée auront un avantage de contrôle pour chacun des contrôles fournis. Toutes les autres propriétés sont héritées de la portée actuelle.

Paramètres
contrôles contrôler les dépendances pour les opérations créées avec la portée renvoyée
Retours
  • une nouvelle portée avec les dépendances de contrôle fournies

Portée publique withName (String opName)

Renvoie une nouvelle portée qui utilise le nom fourni pour une opération.

Les opérations créées dans cette portée auront un nom de la forme name/opName[_suffix] . Cela vous permet de nommer un opérateur spécifique de manière plus significative.

Les noms doivent correspondre à l'expression régulière [A-Za-z0-9.][A-Za-z0-9_.\-]*

Paramètres
NomOp nom d'un opérateur dans la portée renvoyée
Retours
  • une nouvelle portée qui utilise opName pour les opérations.
Jetés
IllegalArgumentException si le nom n'est pas valide

Portée publique avec SubScope (String childScopeName)

Renvoie une nouvelle portée dans laquelle les opérations ajoutées auront le préfixe de nom fourni.

Les opérations créées avec cette étendue auront name/childScopeName/ comme préfixe. Le nom réel sera unique dans la portée renvoyée. Toutes les autres propriétés sont héritées de la portée actuelle.

Le nom de la portée enfant doit correspondre à l'expression régulière [A-Za-z0-9.][A-Za-z0-9_.\-]*

Paramètres
nomEnfantScopeName nom de la nouvelle portée enfant
Retours
  • un nouveau sous-domaine
Jetés
IllegalArgumentException si le nom n'est pas valide