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、オペランド<?> iteratorResource、 Opイニシャライザ、List<Class<? extends TType >> OutputTypes、List< Shape > OutputShapes)
DatasetIterator (Ops tf、オペランド<?> iteratorResource、List<Class<? extends TType >> OutputTypes、List< Shape > OutputShapes)

パブリックメソッド

静的DatasetIterator
fromStructure (Ops tf、List<Class<? extends TType >>outputTypes、List <Shape> outputShapes)
`outputShapes` と `outputTypes` によって定義された「構造体」から新しい反復子を作成します。
オペ
オペランド<?>
リスト<オペランド<?>>
getNext ()
次のデータセット要素のコンポーネントを表すOperand<?>のリストを返します。
データセットオプション
getNextAsOptional ()
次のデータセット要素のコンポーネントを表す `DatasetOptional` を返します。
作戦
イテレータ<リスト<オペランド<?>>>
オペ
makeInitializer (データセットデータセット)
データセット上でこのイテレータを初期化するために実行できる TF `Op` を作成して返します。

継承されたメソッド

定数

パブリック静的最終文字列EMPTY_SHARED_NAME

定数値: ""

パブリックコンストラクター

public DatasetIterator (Ops tf、 Operand <?> iteratorResource、 Opイニシャライザ、List<Class<? extends TType >> OutputTypes、List< Shape > OutputShapes)

パラメーター
TF `iteratorResource` と同じ `ExecutionEnvironment` に対応する Ops アクセサー。
イテレータリソースイテレータを表すオペランド (例: `tf.data.iterator` または `tf.data.anonymousIterator` から構築)
イニシャライザこのイテレータを初期化するために実行する必要がある `Op`
出力タイプデータセット要素の各コンポーネントのテンソル タイプに対応するクラスのリスト。
出力形状データセット要素の各コンポーネントの形状に対応する `Shape` オブジェクトのリスト。

public DatasetIterator (Ops tf、オペランド<?> iteratorResource、List<Class<? extends TType >> OutputTypes、List< Shape > OutputShapes)

パブリックメソッド

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

`outputShapes` と `outputTypes` によって定義された「構造体」から新しい反復子を作成します。

パラメーター
TF運用アクセサー
出力タイプデータセット要素の各コンポーネントのテンソル型を表すクラスのリスト。
出力形状データセット要素の各コンポーネントの形状を表す Shape オブジェクトのリスト。
戻り値
  • 新しい DatasetIterator

public Op getInitializer ()

publicオペランド<?> getIteratorResource ()

public List<オペランド<?>> getNext ()

次のデータセット要素のコンポーネントを表すOperand<?>のリストを返します。

グラフ モードでは、このメソッドを 1 回呼び出し、その結果を別の計算への入力として使用します。次に、トレーニング ループで session.run() を連続して呼び出すと、これらのコンポーネントを通じて連続したデータセット要素が取得されます。

熱心モードでは、このメソッドが呼び出されるたびに、次のデータセット要素が返されます。 (これは、Java `Iterable` として `Dataset` を反復処理することによって自動的に行われます)。

戻り値
  • データセット要素コンポーネントを表すList<Operand<?>>

public DatasetOptional getNextAsOptional ()

次のデータセット要素のコンポーネントを表す `DatasetOptional` を返します。

Eager モードでは、このメソッドが呼び出されるたびに、次のデータセット要素が `DatasetOptional` として返されます。

このオプションに値があるかどうかを確認するには `DatasetOptional.hasValue` を使用し、値を取得するには `DatasetOptional.getValue` を使用します。

戻り値
  • データセット要素コンポーネントを表す `DatasetOptional`。

パブリック運用getOpsInstance ()

public Iterator<List< Operand <?>>> iterator ()

public Op makeInitializer ( Datasetデータセット)

データセット上でこのイテレータを初期化するために実行できる TF `Op` を作成して返します。データセットは、このイテレータと一致する構造 (outputTypes、outputShapes) を持ち、このイテレータと同じ ExecutionEnvironment を共有する必要があります。

この「Op」が実行されると、このイテレータは入力データセットの最初の要素で「再初期化」されます。

Eager モードでは、op は `makeIterator` への呼び出しの一部として自動的に実行されます。

パラメーター
データセットこのイテレータを初期化するための `org.tensorflow.data.Dataset`。
戻り値
  • データセット上でこのイテレータを初期化するために使用できる TF `Op`。
投げる
IllegalArgumentExceptionデータセットの ExecutionEnvironment または構造がこのイテレータと一致しない場合。