DatasetIterator

공개 클래스 DatasetIterator
알려진 직접 서브클래스

tf.data 데이터 세트를 통한 반복 상태를 나타냅니다. DatasetIterator는 java.util.Iterator가 아닙니다. Eager 모드에서는 '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;
     }
   }
 }

 }

예: Eager 모드의 반복.

// 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<?extends TType >>outputTypes, List <Shapes> outputShapes)

공개 방법

정적 DatasetIterator
fromStructure (Ops tf, List<Class<? 확장 TType >> outputTypes, List< Shape > outputShapes)
`outputShapes` 및 `outputTypes`에 의해 정의된 '구조'에서 새 반복자를 만듭니다.
작전
피연산자 <?>
목록< 피연산자 <?>>
getNext ()
다음 데이터 세트 요소의 구성 요소를 나타내는 Operand<?> 목록을 반환합니다.
데이터 세트선택 사항
getNextAs선택 사항 ()
다음 데이터세트 요소의 구성요소를 나타내는 `DatasetOptional`을 반환합니다.
운영
Iterator<목록< 피연산자 <?>>>
작전
makeInitializer ( 데이터세트 데이터세트)
데이터 세트에서 이 반복기를 초기화하기 위해 실행할 수 있는 TF 'Op'를 생성하고 반환합니다.

상속된 메서드

상수

공개 정적 최종 문자열 EMPTY_SHARED_NAME

상수 값: ""

공공 생성자

공용 DatasetIterator (Ops tf, Operand <?> iteratorResource, Op 이니셜라이저, List<Class<? 확장 TType >> outputTypes, List< Shape > outputShapes)

매개변수
tf `iteratorResource`와 동일한 `ExecutionEnvironment`에 해당하는 Ops 접근자입니다.
반복자자원 반복자를 나타내는 피연산자(예: `tf.data.iterator` 또는 `tf.data.anonymousIterator`로 구성됨)
초기화 이 반복자를 초기화하기 위해 실행해야 하는 `Op`
출력 유형 데이터 세트 요소의 각 구성 요소의 텐서 유형에 해당하는 클래스 목록입니다.
출력모양 데이터세트 요소의 각 구성요소 모양에 해당하는 'Shape' 개체 목록입니다.

공개 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`에 의해 정의된 '구조'에서 새 반복자를 만듭니다.

매개변수
tf 작전 접근자
출력 유형 데이터 세트 요소의 각 구성 요소의 텐서 유형을 나타내는 클래스 목록입니다.
출력모양 데이터세트 요소의 각 구성요소 모양을 나타내는 Shape 개체 목록입니다.
보고
  • 새로운 DatasetIterator

공개 작업 getInitializer ()

공용 피연산자 <?> getIteratorResource ()

공개 목록< 피연산자 <?>> getNext ()

다음 데이터 세트 요소의 구성 요소를 나타내는 Operand<?> 목록을 반환합니다.

그래프 모드에서는 이 메서드를 한 번 호출하고 그 결과를 다른 계산의 입력으로 사용합니다. 그런 다음 훈련 루프에서 session.run()에 대한 연속 호출에서 연속적인 데이터 세트 요소가 이러한 구성 요소를 통해 검색됩니다.

Eager 모드에서는 이 메서드가 호출될 때마다 다음 데이터세트 요소가 반환됩니다. (이 작업은 Java `Iterable`로 `Dataset`을 반복하여 자동으로 수행됩니다.)

보고
  • 데이터 세트 요소 구성 요소를 나타내는 List<Operand<?>> .

공개 DatasetOptional getNextAsOptional ()

다음 데이터세트 요소의 구성요소를 나타내는 `DatasetOptional`을 반환합니다.

Eager 모드에서는 이 메서드가 호출될 때마다 다음 데이터세트 요소가 'DatasetOptional'로 반환됩니다.

이 옵션에 값이 있는지 확인하려면 `DatasetOptional.hasValue`를 사용하고, 값을 검색하려면 `DatasetOptional.getValue`를 사용하세요.

보고
  • 데이터세트 요소 구성요소를 나타내는 `DatasetOptional`입니다.

공개 작전 getOpsInstance ()

공용 Iterator<List< 피연산자 <?>>> 반복자 ()

공개 Op makeInitializer ( 데이터 세트 데이터세트)

데이터 세트에서 이 반복기를 초기화하기 위해 실행할 수 있는 TF 'Op'를 생성하고 반환합니다. 데이터 세트에는 이 반복자와 일치하는 구조(outputTypes, outputShapes)가 있어야 하며 이 반복기와 동일한 ExecutionEnvironment를 공유해야 합니다.

이 `Op`가 실행되면 이 반복자는 입력 데이터 세트의 첫 번째 요소에서 "다시 초기화"됩니다.

Eager 모드에서는 `makeIterator` 호출의 일부로 작업이 자동으로 실행됩니다.

매개변수
데이터 세트 이 반복자를 초기화할 `org.tensorflow.data.Dataset`입니다.
보고
  • 데이터세트에서 이 반복자를 초기화하는 데 사용할 수 있는 TF 'Op'입니다.
던지기
IllegalArgumentException 데이터 세트의 ExecutionEnvironment 또는 구조가 이 반복자와 일치하지 않는 경우.