Известные прямые подклассы |
Представляет состояние итерации через набор данных tf.data. DatasetIterator не является java.util.Iterator. В режиме ожидания Dataset можно использовать как Iterable, возвращая элементы набора данных на каждой итерации.
Пример: Итерация в графическом режиме.
// 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;
}
}
}
}
Пример: Итерация в режиме ожидания.
// 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);
}
Константы
Нить | EMPTY_SHARED_NAME |
Публичные конструкторы
DatasetIterator (Ops tf, Operand <?> iteratorResource, Op инициализатор, List<Class<? расширяет TType >> outputTypes, List< Shape > outputShapes) | |
DatasetIterator (Ops tf, Operand <?> iteratorResource, List<Class<? расширяет TType >> outputTypes, List< Shape > outputShapes) |
Публичные методы
статический DatasetIterator | fromStructure (Ops tf, List<Class<? расширяет TType >> outputTypes, List< Shape > outputShapes) Создает новый итератор из «структуры», определенной параметрами «outputShapes» и «outputTypes». |
Оп | |
Операнд <?> | |
Список< Операнд <?>> | получитьСледующий () Возвращает список Operand<?> , представляющий компоненты следующего элемента набора данных. |
Набор данныхНеобязательно | getNextAsOptional () Возвращает DatasetOptional, представляющий компоненты следующего элемента набора данных. |
Операции | |
Итератор<Список< Операнд <?>>> | итератор () |
Оп | makeInitializer (набор данных набора данных ) Создает и возвращает TF `Op`, который можно запустить для инициализации этого итератора в наборе данных. |
Унаследованные методы
Константы
общедоступная статическая финальная строка EMPTY_SHARED_NAME
Публичные конструкторы
public DatasetIterator (Ops tf, Operand <?> iteratorResource, Op инициализатор, List<Class<? расширяет TType >> outputTypes, List< Shape > outputShapes)
Параметры
ТС | Аксессор Ops, соответствующий тому же «ExecutionEnvironment», что и «iteratorResource». |
---|---|
итераторРесурс | Операнд, представляющий итератор (например, созданный на основе tf.data.iterator или tf.data.anonymousIterator). |
инициализатор | `Op`, который должен быть запущен для инициализации этого итератора. |
типы вывода | Список классов, соответствующих тензорному типу каждого компонента элемента набора данных. |
выходные фигуры | Список объектов Shape, соответствующих формам каждого компонента элемента набора данных. |
Публичные методы
общедоступный статический DatasetIterator fromStructure (Ops tf, List<Class<? расширяет TType >> outputTypes, List< Shape > outputShapes)
Создает новый итератор из «структуры», определенной параметрами «outputShapes» и «outputTypes».
Параметры
ТС | Операционный аксессуар |
---|---|
типы вывода | Список классов, представляющих тензорный тип каждого компонента элемента набора данных. |
выходные фигуры | Список объектов Shape, представляющих форму каждого компонента элемента набора данных. |
Возврат
- Новый DatasetIterator
общедоступный список< Операнд <?>> getNext ()
Возвращает список Operand<?>
, представляющий компоненты следующего элемента набора данных.
В режиме графика вызовите этот метод один раз и используйте его результат в качестве входных данных для другого вычисления. Затем в цикле обучения при последовательных вызовах session.run() последовательные элементы набора данных будут извлекаться через эти компоненты.
В режиме ожидания каждый раз, когда вызывается этот метод, будет возвращен следующий элемент набора данных. (Это делается автоматически путем итерации по `Dataset` как Java `Iterable`).
Возврат
-
List<Operand<?>>
, представляющий компоненты элемента набора данных.
общедоступный DatasetOptional getNextAsOptional ()
Возвращает DatasetOptional, представляющий компоненты следующего элемента набора данных.
В режиме ожидания каждый раз, когда вызывается этот метод, следующий элемент набора данных будет возвращен как DatasetOptional.
Используйте DatasetOptional.hasValue, чтобы проверить, имеет ли этот опционал значение, и DatasetOptional.getValue, чтобы получить значение.
Возврат
- DatasetOptional, представляющий компоненты элемента набора данных.
общедоступные операции getOpsInstance ()
public Op makeInitializer (набор данных набора данных )
Создает и возвращает TF `Op`, который можно запустить для инициализации этого итератора в наборе данных. Набор данных должен иметь структуру (outputTypes, outputShapes), соответствующую этому итератору, и использовать ту же среду ExecutionEnvironment, что и этот итератор.
Когда этот `Op` запускается, этот итератор будет «повторно инициализирован» в первом элементе входного набора данных.
В режиме ожидания операция будет выполняться автоматически как часть вызова makeIterator.
Параметры
набор данных | `org.tensorflow.data.Dataset` для инициализации этого итератора. |
---|
Возврат
- TF `Op`, который можно использовать для инициализации этого итератора в наборе данных.
Броски
IllegalArgumentException | если ExecutionEnvironment или структура набора данных не соответствует этому итератору. |
---|