DatasetIterator

classe pubblica DatasetIterator
Sottoclassi dirette conosciute

Rappresenta lo stato di un'iterazione attraverso un Datset tf.data. DatasetIterator non è un java.util.Iterator. In modalità desiderosa, "Dataset" può essere utilizzato come Iterable, restituendo elementi del set di dati a ogni iterazione.

Esempio: Iterazione in modalità grafico.

// 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;
     }
   }
 }

 }

Esempio: Iterazione in modalità desiderosa.

// 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);
 
 }

Costanti

Corda EMPTY_SHARED_NAME

Costruttori pubblici

DatasetIterator (Ops tf, Operando <?> iteratorResource, Inizializzatore Op , List<Class<? estende TType >> outputTypes, List< Shape > outputShapes)
DatasetIterator (Ops tf, Operando <?> iteratorResource, List<Class<? estende TType >> outputTypes, List< Shape > outputShapes)

Metodi pubblici

DatasetIterator statico
fromStructure (Ops tf, List<Class<? estende TType >> outputTypes, List< Shape > outputShapes)
Crea un nuovo iteratore da una "struttura" definita da "outputShapes" e "outputTypes".
Operazione
Operando <?>
Elenco< operando <?>>
ottienisuccessivo ()
Restituisce un elenco di Operand<?> che rappresentano i componenti dell'elemento successivo del set di dati.
DatasetFacoltativo
getNextAsOptional ()
Restituisce un "DatasetOptional" che rappresenta i componenti dell'elemento del set di dati successivo.
Op
Iteratore<Elenco< Operando <?>>>
Operazione
makeInitializer (set di dati del set di dati )
Crea e restituisce un TF "Op" che può essere eseguito per inizializzare questo iteratore su un set di dati.

Metodi ereditati

Costanti

Stringa finale statica pubblica EMPTY_SHARED_NAME

Valore costante: ""

Costruttori pubblici

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

Parametri
tf Funzione di accesso Ops corrispondente allo stesso "ExecutionEnvironment" di "iteratorResource".
iteratorResource Un operando che rappresenta l'iteratore (ad esempio costruito da `tf.data.iterator` o `tf.data.anonymousIterator`)
inizializzatore Un "Op" che dovrebbe essere eseguito per inizializzare questo iteratore
outputTypes Un elenco di classi corrispondenti al tipo di tensore di ciascun componente di un elemento del set di dati.
outputShapes Un elenco di oggetti "Shape" corrispondenti alle forme di ciascun componente di un elemento del set di dati.

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

Metodi pubblici

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

Crea un nuovo iteratore da una "struttura" definita da "outputShapes" e "outputTypes".

Parametri
tf Accessore Ops
outputTypes Un elenco di classi che rappresentano il tipo di tensore di ciascun componente di un elemento del set di dati.
outputShapes Un elenco di oggetti Shape che rappresentano la forma di ciascun componente di un elemento del set di dati.
ritorna
  • Un nuovo DatasetIterator

public Op getInitializer ()

Operando pubblico <?> getIteratorResource ()

public List< Operando <?>> getNext ()

Restituisce un elenco di Operand<?> che rappresentano i componenti dell'elemento successivo del set di dati.

In modalità grafico, chiama questo metodo una volta e usa il suo risultato come input per un altro calcolo. Quindi nel ciclo di training, nelle chiamate successive a session.run(), gli elementi successivi del set di dati verranno recuperati tramite questi componenti.

In modalità desiderosa, ogni volta che viene chiamato questo metodo, verrà restituito l'elemento successivo del set di dati. (Ciò viene fatto automaticamente eseguendo l'iterazione di `Dataset` come Java `Iterable`).

ritorna
  • Un List<Operand<?>> che rappresenta i componenti dell'elemento del set di dati.

public DatasetOptional getNextAsOptional ()

Restituisce un "DatasetOptional" che rappresenta i componenti dell'elemento del set di dati successivo.

In modalità desiderosa, ogni volta che viene chiamato questo metodo, il successivo elemento del set di dati verrà restituito come "DatasetOptional".

Utilizza "DatasetOptional.hasValue" per verificare se questo opzionale ha un valore e "DatasetOptional.getValue" per recuperare il valore.

ritorna
  • Un "DatasetOptional" che rappresenta i componenti dell'elemento del set di dati.

operazioni pubbliche getOpsInstance ()

public Iterator<Lista< Operando <?>>> iteratore ()

public Op makeInitializer (set di dati del set di dati )

Crea e restituisce un TF "Op" che può essere eseguito per inizializzare questo iteratore su un set di dati. Il set di dati deve avere una struttura (outputTypes, outputShapes) che corrisponde a questo iteratore e condivide lo stesso ExecutionEnvironment di questo iteratore.

Quando viene eseguito questo "Op", questo iteratore verrà "reinizializzato" nel primo elemento del set di dati di input.

In modalità desiderosa, l'operazione verrà eseguita automaticamente come parte di una chiamata a "makeIterator".

Parametri
set di dati Un `org.tensorflow.data.Dataset` su cui inizializzare questo iteratore.
ritorna
  • Un TF "Op" che può essere utilizzato per inizializzare questo iteratore sul set di dati.
Lancia
IllegalArgumentException se l'ExecutionEnvironment o la struttura del set di dati non corrisponde a questo iteratore.