Subclasses diretas conhecidas |
Representa o estado de uma iteração por meio de um Datset tf.data. DatasetIterator não é java.util.Iterator. No modo antecipado, `Dataset` pode ser usado como um Iterable, retornando elementos do dataset a cada iteração.
Exemplo: Iteração em modo gráfico.
// 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;
}
}
}
}
Exemplo: Iteração no modo ansioso.
// 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
Fragmento | EMPTY_SHARED_NAME |
Construtores Públicos
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étodos Públicos
DatasetIterator estático | fromStructure (Ops tf, List <Class <? extends TType >> outputTypes, List < Shape > outputShapes) Cria um novo iterador a partir de uma "estrutura" definida por `outputShapes` e` outputTypes`. |
Op | |
Operando <?> | |
Listar < Operando <? >> | getNext () Retorna uma lista de Operand<?> Representando os componentes do próximo elemento do conjunto de dados. |
DatasetOptional | getNextAsOptional () Retorna um `DatasetOptional` representando os componentes do próximo elemento do conjunto de dados. |
Ops | |
Iterador <Lista < Operando <? >>> | iterador () |
Op | makeInitializer ( conjunto de dados do conjunto de dados) Cria e retorna um TF `Op` que pode ser executado para inicializar este iterador em um conjunto de dados. |
Métodos herdados
Constantes
public static final String EMPTY_SHARED_NAME
Construtores Públicos
public DatasetIterator (Ops tf, Operand <?> iteratorResource, Op initializer, List <Class <? extends TType >> outputTypes, List < Shape > outputShapes)
Parâmetros
tf | Acessador de operações correspondente ao mesmo `ExecutionEnvironment` que o` iteratorResource`. |
---|---|
iteratorResource | Um operando que representa o iterador (por exemplo, construído a partir de `tf.data.iterator` ou` tf.data.anonymousIterator`) |
inicializador | Um `Op` que deve ser executado para inicializar este iterador |
outputTypes | Uma lista de classes correspondentes ao tipo de tensor de cada componente de um elemento do conjunto de dados. |
outputShapes | Uma lista de objetos `Shape` correspondentes às formas de cada componente de um elemento do conjunto de dados. |
Métodos Públicos
public static DatasetIterator fromStructure (Ops tf, List <Class <? extends TType >> outputTypes, List < Shape > outputShapes)
Cria um novo iterador a partir de uma "estrutura" definida por `outputShapes` e` outputTypes`.
Parâmetros
tf | Acessador de operações |
---|---|
outputTypes | Uma lista de classes representando o tipo tensor de cada componente de um elemento do conjunto de dados. |
outputShapes | Uma lista de objetos Shape que representam a forma de cada componente de um elemento do conjunto de dados. |
Devoluções
- Um novo DatasetIterator
public List < Operand <? >> getNext ()
Retorna uma lista de Operand<?>
Representando os componentes do próximo elemento do conjunto de dados.
No modo gráfico, chame este método uma vez e use seu resultado como entrada para outro cálculo. Em seguida, no loop de treinamento, em chamadas sucessivas para session.run (), elementos de conjunto de dados sucessivos serão recuperados por meio desses componentes.
No modo ansioso, cada vez que esse método é chamado, o próximo elemento do conjunto de dados será retornado. (Isso é feito automaticamente iterando por meio de `Dataset` como um Java` Iterable`).
Devoluções
- Uma
List<Operand<?>>
representa os componentes do elemento do conjunto de dados.
public DatasetOptional getNextAsOptional ()
Retorna um `DatasetOptional` representando os componentes do próximo elemento do conjunto de dados.
No modo ansioso, cada vez que este método é chamado, o próximo elemento do conjunto de dados será retornado como um `DatasetOptional`.
Use `DatasetOptional.hasValue` para verificar se este opcional tem um valor e` DatasetOptional.getValue` para recuperar o valor.
Devoluções
- Um `DatasetOptional` que representa os componentes do elemento do conjunto de dados.
public Ops getOpsInstance ()
public Op makeInitializer ( conjunto de dados do conjunto de dados)
Cria e retorna um TF `Op` que pode ser executado para inicializar este iterador em um conjunto de dados. O conjunto de dados deve ter uma estrutura (outputTypes, outputShapes) que corresponda a este iterador e compartilhe o mesmo ExecutionEnvironment que este iterador.
Quando este `Op` é executado, este iterador será" reinicializado "no primeiro elemento do conjunto de dados de entrada.
No modo ansioso, o op será executado automaticamente como parte de uma chamada para `makeIterator`.
Parâmetros
conjunto de dados | Um `org.tensorflow.data.Dataset` para inicializar este iterador. |
---|
Devoluções
- Um TF `Op` que pode ser usado para inicializar este iterador no conjunto de dados.
Lança
Exceção de argumento ilegal | se o ExecutionEnvironment ou a estrutura do conjunto de dados não corresponder a este iterador. |
---|