Portée

Portée de la classe finale publique

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

Un Scope est un conteneur pour les propriétés communes appliquées à TensorFlow Ops. Le code utilisateur normal initialise une Scope et la fournit aux classes de bâtiment Operation. Par exemple:

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

Une classe de construction Operation acquiert un Scope et l'utilise pour définir des propriétés sur les 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 des portées:

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

Un exemple utilisant Constant implémenté comme précédemment:

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 ( ExecutionEnvironment env)
Créez une nouvelle étendue de niveau supérieur.

Méthodes publiques

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.
ExécutionEnvironnement
env ()
Renvoie l'environnement d'exécution utilisé par cette étendue.
Chaîne
makeOpName (chaîne defaultName)
Créez un nom unique pour un opérateur, en utilisant une valeur par défaut fournie si nécessaire.
Portée
withControlDependencies ( Contrôles Iterable < Opérande <? >>)
Renvoie une nouvelle portée dans laquelle les opérations ajoutées auront les dépendances de contrôle fournies.
Portée
withName (chaîne opName)
Renvoie une nouvelle portée qui utilise le nom fourni pour un op.
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 ( ExecutionEnvironment env)

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

Paramètres
env L'environnement d'exécution utilisé par l'étendue.

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 à

public ExecutionEnvironment 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 une valeur par défaut fournie 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 du nom contrôlée par cette instance. Le code du bâtiment typique de l'opérateur pourrait ressembler à

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

Remarque: si vous fournissez une classe de bâtiment d'opérateur composite (c'est-à-dire une classe qui crée un ensemble d'opérations liées en appelant un autre code de bâtiment d'opérateur), le nom fourni agira comme une sous-portée pour tous les opérateurs sous-jacents.

Paramètres
defaultName nom de l'opérateur sous-jacent.
Retour
  • nom unique de l'opérateur.
Jette
Exception d'argument illégal si le nom par défaut n'est pas valide.

Public Scope withControlDependencies ( Contrôles Iterable < Opérande <? >>)

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 étendue auront un bord de contrôle de chacun des contrôles fournis. Toutes les autres propriétés sont héritées de la portée actuelle.

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

public Scope withName (String opName)

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

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
opName nom d'un opérateur dans la portée renvoyée
Retour
  • une nouvelle portée qui utilise opName pour les opérations.
Jette
Exception d'argument illégal si le nom est invalide

public Scope withSubScope (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 le 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
childScopeName nom de la nouvelle étendue enfant
Retour
  • une nouvelle sous-portée
Jette
Exception d'argument illégal si le nom est invalide