DatasetIterator

classe publique DatasetIterator
Sous-classes directes connues

Représente l'état d'une itération via un Datset tf.data. DatasetIterator n'est pas un java.util.Iterator. En mode impatient, « Dataset » peut être utilisé comme un itérable, renvoyant des éléments d'ensemble de données à chaque itération.

Exemple : Itération en mode graphique.

// Create input tensors
 Operand<?> features = tf.constant( ... );
 Operand<?> labels = tf.constant( ... );


 Dataset dataset = Dataset
         .fromTensorSlices(XTensor, yTensor);
         .batch(BATCH_SIZE);

 DatasetIterator iterator = dataset.makeInitializeableIterator();
 List<Operand<?>> components = iterator.getNext();
 Operand<?> featureBatch = components.get(0);
 Operand<?> labelBatch = components.get(1);

 // Build a TensorFlow graph that does something on each element.
 loss = computeModelLoss(featureBatch, labelBatch);

 optimizer = ... // create an optimizer
 trainOp = optimizer.minimize(loss);

 try (Session session = new Session(graph) {
   while (true) {
     session.run(iterator.getInitializer());
     try {
         session
           .addTarget(trainOp)
           .fetch(loss)
           .run();

         ...
      catch (TFOutOfRangeError e) {
         System.out.println("finished iterating.");
         break;
     }
   }
 }

 }

Exemple : Itération en mode impatient.

// Create input tensors
 Operand<?> features = tf.constant( ... );
 Operand<?> labels = tf.constant( ... );

 int BATCH_SIZE = ...

 Dataset dataset = Dataset
         .fromTensorSlices(features, labels)
         .batch(BATCH_SIZE);
 DatasetIterator iterator = dataset.makeIterator();

 Optimizer optimizer = ... // create an optimizer

 for (List<Operand<?>> components : dataset) {
     Operand<?> featureBatch = components.get(0);
     Operand<?> labelBatch = components.get(1);

     loss = computeModelLoss(featureBatch, labelBatch);
     trainOp = optimizer.minimize(loss);
 
 }

Constantes

Chaîne EMPTY_SHARED_NAME

Constructeurs Publics

DatasetIterator (Ops tf, Operand <?> iteratorResource, Op initializer, List<Class<? extends TType >> outputTypes, List< Shape > outputShapes)
DatasetIterator (Ops tf, Operand <?> iteratorResource, List<Class<? extends TType >> outputTypes, List< Shape > outputShapes)

Méthodes publiques

DatasetIterator statique
fromStructure (Ops tf, List<Class<? extends TType >> outputTypes, List< Shape > outputShapes)
Crée un nouvel itérateur à partir d'une "structure" définie par `outputShapes` et `outputTypes`.
Opération
Opérande <?>
Liste< Opérande <?>>
obtenirSuivant ()
Renvoie une liste d' Operand<?> représentant les composants de l'élément suivant de l'ensemble de données.
Ensemble de donnéesFacultatif
getNextAsOptional ()
Renvoie un `DatasetOptional` représentant les composants de l'élément suivant de l'ensemble de données.
Opérations
Itérateur<Liste< Opérande <?>>>
Opération
makeInitializer ( ensemble de données Dataset)
Crée et renvoie un TF `Op` qui peut être exécuté pour initialiser cet itérateur sur un ensemble de données.

Méthodes héritées

Constantes

Chaîne finale statique publique EMPTY_SHARED_NAME

Valeur constante : ""

Constructeurs Publics

public DatasetIterator (Ops tf, Operand <?> iteratorResource, Op initializer, List<Class<? extends TType >> outputTypes, List< Shape > outputShapes)

Paramètres
tf Accesseur Ops correspondant au même `ExecutionEnvironment` que `iteratorResource`.
itérateurResource Un opérande représentant l'itérateur (par exemple construit à partir de `tf.data.iterator` ou `tf.data.anonymousIterator`)
initialiseur Un `Op` qui doit être exécuté pour initialiser cet itérateur
Types de sortie Une liste de classes correspondant au type de tenseur de chaque composant d'un élément d'ensemble de données.
Formes de sortie Une liste d'objets 'Shape' correspondant aux formes de chaque composant d'un élément d'ensemble de données.

public DatasetIterator (Ops tf, Operand <?> iteratorResource, List<Class<? extends TType >> outputTypes, List< Shape > outputShapes)

Méthodes publiques

public static DatasetIterator fromStructure (Ops tf, List<Class<? extends TType >> outputTypes, List< Shape > outputShapes)

Crée un nouvel itérateur à partir d'une "structure" définie par `outputShapes` et `outputTypes`.

Paramètres
tf Accesseur opérationnel
Types de sortie Une liste de classes représentant le type de tenseur de chaque composant d'un élément d'ensemble de données.
Formes de sortie Une liste d'objets Shape représentant la forme de chaque composant d'un élément d'ensemble de données.
Retour
  • Un nouveau DatasetIterator

opération publique getInitializer ()

Opérande public <?> getIteratorResource ()

Liste publique < Opérande <?>> getNext ()

Renvoie une liste d' Operand<?> représentant les composants de l'élément suivant de l'ensemble de données.

En mode graphique, appelez cette méthode une fois et utilisez son résultat comme entrée dans un autre calcul. Ensuite, dans la boucle d'entraînement, lors d'appels successifs à session.run(), les éléments successifs de l'ensemble de données seront récupérés via ces composants.

En mode impatient, chaque fois que cette méthode est appelée, l'élément suivant de l'ensemble de données sera renvoyé. (Cela se fait automatiquement en parcourant `Dataset` en tant que Java `Iterable`).

Retour
  • List<Operand<?>> représentant les composants des éléments de l'ensemble de données.

public DatasetOptional getNextAsOptional ()

Renvoie un `DatasetOptional` représentant les composants de l'élément suivant de l'ensemble de données.

En mode impatient, chaque fois que cette méthode est appelée, l'élément suivant de l'ensemble de données sera renvoyé sous la forme d'un « DatasetOptional ».

Utilisez `DatasetOptional.hasValue` pour vérifier si cet facultatif a une valeur, et `DatasetOptional.getValue` pour récupérer la valeur.

Retour
  • Un `DatasetOptional` représentant les composants des éléments de l'ensemble de données.

Opérations publiques getOpsInstance ()

public Iterator<List< Operand <?>>> itérateur ()

public Op makeInitializer ( ensemble de données Dataset)

Crée et renvoie un TF `Op` qui peut être exécuté pour initialiser cet itérateur sur un ensemble de données. L'ensemble de données doit avoir une structure (outputTypes, outputShapes) qui correspond à cet itérateur et partager le même ExecutionEnvironment que cet itérateur.

Lorsque cet `Op` est exécuté, cet itérateur sera "réinitialisé" au premier élément de l'ensemble de données d'entrée.

En mode impatient, l'opération sera exécutée automatiquement dans le cadre d'un appel à `makeIterator`.

Paramètres
base de données Un `org.tensorflow.data.Dataset` sur lequel initialiser cet itérateur.
Retour
  • Un TF `Op` qui peut être utilisé pour initialiser cet itérateur sur l'ensemble de données.
Jetés
Exception d'argument illégal si l'ExecutionEnvironment ou la structure de l'ensemble de données ne correspond pas à cet itérateur.